1547be9ecSRaghu Vatsavayi /********************************************************************** 2547be9ecSRaghu Vatsavayi * Author: Cavium, Inc. 3547be9ecSRaghu Vatsavayi * 4547be9ecSRaghu Vatsavayi * Contact: support@cavium.com 5547be9ecSRaghu Vatsavayi * Please include "LiquidIO" in the subject. 6547be9ecSRaghu Vatsavayi * 7547be9ecSRaghu Vatsavayi * Copyright (c) 2003-2016 Cavium, Inc. 8547be9ecSRaghu Vatsavayi * 9547be9ecSRaghu Vatsavayi * This file is free software; you can redistribute it and/or modify 10547be9ecSRaghu Vatsavayi * it under the terms of the GNU General Public License, Version 2, as 11547be9ecSRaghu Vatsavayi * published by the Free Software Foundation. 12547be9ecSRaghu Vatsavayi * 13547be9ecSRaghu Vatsavayi * This file is distributed in the hope that it will be useful, but 14547be9ecSRaghu Vatsavayi * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15547be9ecSRaghu Vatsavayi * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16547be9ecSRaghu Vatsavayi * NONINFRINGEMENT. See the GNU General Public License for more details. 17547be9ecSRaghu Vatsavayi ***********************************************************************/ 18547be9ecSRaghu Vatsavayi /*! \file cn23xx_vf_regs.h 19547be9ecSRaghu Vatsavayi * \brief Host Driver: Register Address and Register Mask values for 20547be9ecSRaghu Vatsavayi * Octeon CN23XX vf functions. 21547be9ecSRaghu Vatsavayi */ 22547be9ecSRaghu Vatsavayi 23547be9ecSRaghu Vatsavayi #ifndef __CN23XX_VF_REGS_H__ 24547be9ecSRaghu Vatsavayi #define __CN23XX_VF_REGS_H__ 25547be9ecSRaghu Vatsavayi 26547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_XPANSION_BAR 0x38 27547be9ecSRaghu Vatsavayi 28547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_CAP 0x70 29547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_DEVCAP 0x74 30547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_DEVCTL 0x78 31547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_LINKCAP 0x7C 32547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_LINKCTL 0x80 33547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_SLOTCAP 0x84 34547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_SLOTCTL 0x88 35547be9ecSRaghu Vatsavayi 36547be9ecSRaghu Vatsavayi #define CN23XX_CONFIG_PCIE_FLTMSK 0x720 37547be9ecSRaghu Vatsavayi 38547be9ecSRaghu Vatsavayi /* The input jabber is used to determine the TSO max size. 39*c29b0682SRuffalo Lavoisier * Due to H/W limitation, this needs to be reduced to 60000 40*c29b0682SRuffalo Lavoisier * in order to use H/W TSO and avoid the WQE malformation 41547be9ecSRaghu Vatsavayi * PKO_BUG_24989_WQE_LEN 42547be9ecSRaghu Vatsavayi */ 43547be9ecSRaghu Vatsavayi #define CN23XX_DEFAULT_INPUT_JABBER 0xEA60 /*60000*/ 44547be9ecSRaghu Vatsavayi 45547be9ecSRaghu Vatsavayi /* ############## BAR0 Registers ################ */ 46547be9ecSRaghu Vatsavayi 47547be9ecSRaghu Vatsavayi /* Each Input Queue register is at a 16-byte Offset in BAR0 */ 48547be9ecSRaghu Vatsavayi #define CN23XX_VF_IQ_OFFSET 0x20000 49547be9ecSRaghu Vatsavayi 50547be9ecSRaghu Vatsavayi /*###################### REQUEST QUEUE #########################*/ 51547be9ecSRaghu Vatsavayi 52547be9ecSRaghu Vatsavayi /* 64 registers for Input Queue Instr Count - SLI_PKT_IN_DONE0_CNTS */ 53547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_INSTR_COUNT_START64 0x10040 54547be9ecSRaghu Vatsavayi 55547be9ecSRaghu Vatsavayi /* 64 registers for Input Queues Start Addr - SLI_PKT0_INSTR_BADDR */ 56547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_BASE_ADDR_START64 0x10010 57547be9ecSRaghu Vatsavayi 58547be9ecSRaghu Vatsavayi /* 64 registers for Input Doorbell - SLI_PKT0_INSTR_BAOFF_DBELL */ 59547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_DOORBELL_START 0x10020 60547be9ecSRaghu Vatsavayi 61547be9ecSRaghu Vatsavayi /* 64 registers for Input Queue size - SLI_PKT0_INSTR_FIFO_RSIZE */ 62547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_SIZE_START 0x10030 63547be9ecSRaghu Vatsavayi 64547be9ecSRaghu Vatsavayi /* 64 registers (64-bit) - ES, RO, NS, Arbitration for Input Queue Data & 65547be9ecSRaghu Vatsavayi * gather list fetches. SLI_PKT(0..63)_INPUT_CONTROL. 66547be9ecSRaghu Vatsavayi */ 67547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_PKT_CONTROL_START64 0x10000 68547be9ecSRaghu Vatsavayi 69547be9ecSRaghu Vatsavayi /*------- Request Queue Macros ---------*/ 70547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_PKT_CONTROL64(iq) \ 71547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_IQ_PKT_CONTROL_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 72547be9ecSRaghu Vatsavayi 73547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_BASE_ADDR64(iq) \ 74547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_IQ_BASE_ADDR_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 75547be9ecSRaghu Vatsavayi 76547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_SIZE(iq) \ 77547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_IQ_SIZE_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 78547be9ecSRaghu Vatsavayi 79547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_DOORBELL(iq) \ 80547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_IQ_DOORBELL_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 81547be9ecSRaghu Vatsavayi 82547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_IQ_INSTR_COUNT64(iq) \ 83547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_IQ_INSTR_COUNT_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 84547be9ecSRaghu Vatsavayi 85547be9ecSRaghu Vatsavayi /*------------------ Masks ----------------*/ 86547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_VF_NUM BIT_ULL(32) 87547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_MAC_NUM BIT(29) 88547be9ecSRaghu Vatsavayi /* Number of instructions to be read in one MAC read request. 89547be9ecSRaghu Vatsavayi * setting to Max value(4) 90547be9ecSRaghu Vatsavayi */ 91547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_RDSIZE (3 << 25) 92547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_IS_64B BIT(24) 93547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_RST BIT(23) 94547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_QUIET BIT(28) 95547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_RING_ENB BIT(22) 96547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_DATA_NS BIT(8) 97547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP BIT(6) 98547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_DATA_RO BIT(5) 99547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_USE_CSR BIT(4) 100547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_GATHER_NS BIT(3) 101547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_GATHER_ES_64B_SWAP (2) 102547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_GATHER_RO (1) 103547be9ecSRaghu Vatsavayi 104547be9ecSRaghu Vatsavayi /** Rings per Virtual Function [RO] **/ 105547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_RPVF_MASK (0x3F) 106547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_RPVF_POS (48) 107547be9ecSRaghu Vatsavayi /* These bits[47:44][RO] give the Physical function number info within the MAC*/ 108547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_PF_NUM_MASK (0x7) 109547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_PF_NUM_POS (45) 110547be9ecSRaghu Vatsavayi /** These bits[43:32][RO] give the virtual function number info within the PF*/ 111547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_VF_NUM_MASK (0x1FFF) 112547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_VF_NUM_POS (32) 113547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_MAC_NUM_MASK (0x3) 114547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_MAC_NUM_POS (29) 115547be9ecSRaghu Vatsavayi #define CN23XX_PKT_IN_DONE_WMARK_MASK (0xFFFFULL) 116547be9ecSRaghu Vatsavayi #define CN23XX_PKT_IN_DONE_WMARK_BIT_POS (32) 117547be9ecSRaghu Vatsavayi #define CN23XX_PKT_IN_DONE_CNT_MASK (0x00000000FFFFFFFFULL) 118547be9ecSRaghu Vatsavayi 119547be9ecSRaghu Vatsavayi #ifdef __LITTLE_ENDIAN_BITFIELD 120547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_MASK \ 121547be9ecSRaghu Vatsavayi (CN23XX_PKT_INPUT_CTL_RDSIZE \ 122547be9ecSRaghu Vatsavayi | CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP \ 123547be9ecSRaghu Vatsavayi | CN23XX_PKT_INPUT_CTL_USE_CSR) 124547be9ecSRaghu Vatsavayi #else 125547be9ecSRaghu Vatsavayi #define CN23XX_PKT_INPUT_CTL_MASK \ 126547be9ecSRaghu Vatsavayi (CN23XX_PKT_INPUT_CTL_RDSIZE \ 127547be9ecSRaghu Vatsavayi | CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP \ 128547be9ecSRaghu Vatsavayi | CN23XX_PKT_INPUT_CTL_USE_CSR \ 129547be9ecSRaghu Vatsavayi | CN23XX_PKT_INPUT_CTL_GATHER_ES_64B_SWAP) 130547be9ecSRaghu Vatsavayi #endif 131547be9ecSRaghu Vatsavayi 132547be9ecSRaghu Vatsavayi /** Masks for SLI_PKT_IN_DONE(0..63)_CNTS Register */ 133547be9ecSRaghu Vatsavayi #define CN23XX_IN_DONE_CNTS_PI_INT BIT_ULL(62) 134547be9ecSRaghu Vatsavayi #define CN23XX_IN_DONE_CNTS_CINT_ENB BIT_ULL(48) 135547be9ecSRaghu Vatsavayi 136547be9ecSRaghu Vatsavayi /*############################ OUTPUT QUEUE #########################*/ 137547be9ecSRaghu Vatsavayi 138547be9ecSRaghu Vatsavayi /* 64 registers for Output queue control - SLI_PKT(0..63)_OUTPUT_CONTROL */ 139547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_CONTROL_START 0x10050 140547be9ecSRaghu Vatsavayi 141547be9ecSRaghu Vatsavayi /* 64 registers for Output queue buffer and info size - SLI_PKT0_OUT_SIZE */ 142547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ0_BUFF_INFO_SIZE 0x10060 143547be9ecSRaghu Vatsavayi 144547be9ecSRaghu Vatsavayi /* 64 registers for Output Queue Start Addr - SLI_PKT0_SLIST_BADDR */ 145547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_BASE_ADDR_START64 0x10070 146547be9ecSRaghu Vatsavayi 147547be9ecSRaghu Vatsavayi /* 64 registers for Output Queue Packet Credits - SLI_PKT0_SLIST_BAOFF_DBELL */ 148547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_CREDITS_START 0x10080 149547be9ecSRaghu Vatsavayi 150547be9ecSRaghu Vatsavayi /* 64 registers for Output Queue size - SLI_PKT0_SLIST_FIFO_RSIZE */ 151547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_SIZE_START 0x10090 152547be9ecSRaghu Vatsavayi 153547be9ecSRaghu Vatsavayi /* 64 registers for Output Queue Packet Count - SLI_PKT0_CNTS */ 154547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_SENT_START 0x100B0 155547be9ecSRaghu Vatsavayi 156547be9ecSRaghu Vatsavayi /* 64 registers for Output Queue INT Levels - SLI_PKT0_INT_LEVELS */ 157547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_START64 0x100A0 158547be9ecSRaghu Vatsavayi 159547be9ecSRaghu Vatsavayi /* Each Output Queue register is at a 16-byte Offset in BAR0 */ 160547be9ecSRaghu Vatsavayi #define CN23XX_VF_OQ_OFFSET 0x20000 161547be9ecSRaghu Vatsavayi 162547be9ecSRaghu Vatsavayi /*------- Output Queue Macros ---------*/ 163547be9ecSRaghu Vatsavayi 164547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_CONTROL(oq) \ 165547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_CONTROL_START + ((oq) * CN23XX_VF_OQ_OFFSET)) 166547be9ecSRaghu Vatsavayi 167547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_BASE_ADDR64(oq) \ 168547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_BASE_ADDR_START64 + ((oq) * CN23XX_VF_OQ_OFFSET)) 169547be9ecSRaghu Vatsavayi 170547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_SIZE(oq) \ 171547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_SIZE_START + ((oq) * CN23XX_VF_OQ_OFFSET)) 172547be9ecSRaghu Vatsavayi 173547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_BUFF_INFO_SIZE(oq) \ 174547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ0_BUFF_INFO_SIZE + ((oq) * CN23XX_VF_OQ_OFFSET)) 175547be9ecSRaghu Vatsavayi 176547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKTS_SENT(oq) \ 177547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_SENT_START + ((oq) * CN23XX_VF_OQ_OFFSET)) 178547be9ecSRaghu Vatsavayi 179547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKTS_CREDIT(oq) \ 180547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_CREDITS_START + ((oq) * CN23XX_VF_OQ_OFFSET)) 181547be9ecSRaghu Vatsavayi 182547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_INT_LEVELS(oq) \ 183547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_START64 + ((oq) * CN23XX_VF_OQ_OFFSET)) 184547be9ecSRaghu Vatsavayi 185547be9ecSRaghu Vatsavayi /* Macro's for accessing CNT and TIME separately from INT_LEVELS */ 186547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_CNT(oq) \ 187547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_START64 + ((oq) * CN23XX_VF_OQ_OFFSET)) 188547be9ecSRaghu Vatsavayi 189547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_TIME(oq) \ 190547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_OQ_PKT_INT_LEVELS_START64 + \ 191547be9ecSRaghu Vatsavayi ((oq) * CN23XX_VF_OQ_OFFSET) + 4) 192547be9ecSRaghu Vatsavayi 193547be9ecSRaghu Vatsavayi /*------------------ Masks ----------------*/ 194547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_TENB BIT(13) 195547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_CENB BIT(12) 196547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_IPTR BIT(11) 197547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_ES BIT(9) 198547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_NSR BIT(8) 199547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_ROR BIT(7) 200547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_DPTR BIT(6) 201547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_BMODE BIT(5) 202547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_ES_P BIT(3) 203547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_NSR_P BIT(2) 204547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_ROR_P BIT(1) 205547be9ecSRaghu Vatsavayi #define CN23XX_PKT_OUTPUT_CTL_RING_ENB BIT(0) 206547be9ecSRaghu Vatsavayi 207547be9ecSRaghu Vatsavayi /*######################### Mailbox Reg Macros ########################*/ 208547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_PKT_MBOX_INT_START 0x10210 209547be9ecSRaghu Vatsavayi #define CN23XX_SLI_PKT_PF_VF_MBOX_SIG_START 0x10200 210547be9ecSRaghu Vatsavayi 211547be9ecSRaghu Vatsavayi #define CN23XX_SLI_MBOX_OFFSET 0x20000 212547be9ecSRaghu Vatsavayi #define CN23XX_SLI_MBOX_SIG_IDX_OFFSET 0x8 213547be9ecSRaghu Vatsavayi 214547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_PKT_MBOX_INT(q) \ 215547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_PKT_MBOX_INT_START + ((q) * CN23XX_SLI_MBOX_OFFSET)) 216547be9ecSRaghu Vatsavayi 217547be9ecSRaghu Vatsavayi #define CN23XX_SLI_PKT_PF_VF_MBOX_SIG(q, idx) \ 218547be9ecSRaghu Vatsavayi (CN23XX_SLI_PKT_PF_VF_MBOX_SIG_START + \ 219547be9ecSRaghu Vatsavayi ((q) * CN23XX_SLI_MBOX_OFFSET + \ 220547be9ecSRaghu Vatsavayi (idx) * CN23XX_SLI_MBOX_SIG_IDX_OFFSET)) 221547be9ecSRaghu Vatsavayi 222547be9ecSRaghu Vatsavayi /*######################## INTERRUPTS #########################*/ 223547be9ecSRaghu Vatsavayi 224547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_INT_SUM_START 0x100D0 225547be9ecSRaghu Vatsavayi 226547be9ecSRaghu Vatsavayi #define CN23XX_VF_SLI_INT_SUM(q) \ 227547be9ecSRaghu Vatsavayi (CN23XX_VF_SLI_INT_SUM_START + ((q) * CN23XX_VF_IQ_OFFSET)) 228547be9ecSRaghu Vatsavayi 229547be9ecSRaghu Vatsavayi /*------------------ Interrupt Masks ----------------*/ 230547be9ecSRaghu Vatsavayi 231547be9ecSRaghu Vatsavayi #define CN23XX_INTR_PO_INT BIT_ULL(63) 232547be9ecSRaghu Vatsavayi #define CN23XX_INTR_PI_INT BIT_ULL(62) 233547be9ecSRaghu Vatsavayi #define CN23XX_INTR_MBOX_INT BIT_ULL(61) 234547be9ecSRaghu Vatsavayi #define CN23XX_INTR_RESEND BIT_ULL(60) 235547be9ecSRaghu Vatsavayi 236547be9ecSRaghu Vatsavayi #define CN23XX_INTR_CINT_ENB BIT_ULL(48) 237547be9ecSRaghu Vatsavayi #define CN23XX_INTR_MBOX_ENB BIT(0) 238547be9ecSRaghu Vatsavayi 239547be9ecSRaghu Vatsavayi /*############################ MIO #########################*/ 240547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CLOCK_CFG 0x0001070000000f00ULL 241547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CLOCK_LO 0x0001070000000f08ULL 242547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CLOCK_HI 0x0001070000000f10ULL 243547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CLOCK_COMP 0x0001070000000f18ULL 244547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_TIMESTAMP 0x0001070000000f20ULL 245547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_EVT_CNT 0x0001070000000f28ULL 246547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CKOUT_THRESH_LO 0x0001070000000f30ULL 247547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CKOUT_THRESH_HI 0x0001070000000f38ULL 248547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CKOUT_HI_INCR 0x0001070000000f40ULL 249547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_CKOUT_LO_INCR 0x0001070000000f48ULL 250547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_PPS_THRESH_LO 0x0001070000000f50ULL 251547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_PPS_THRESH_HI 0x0001070000000f58ULL 252547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_PPS_HI_INCR 0x0001070000000f60ULL 253547be9ecSRaghu Vatsavayi #define CN23XX_MIO_PTP_PPS_LO_INCR 0x0001070000000f68ULL 254547be9ecSRaghu Vatsavayi 255547be9ecSRaghu Vatsavayi /*############################ RST #########################*/ 256547be9ecSRaghu Vatsavayi #define CN23XX_RST_BOOT 0x0001180006001600ULL 257547be9ecSRaghu Vatsavayi 258547be9ecSRaghu Vatsavayi /*######################## MSIX TABLE #########################*/ 259547be9ecSRaghu Vatsavayi 260547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_ADDR_START 0x0 261547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_DATA_START 0x8 262547be9ecSRaghu Vatsavayi 263547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_SIZE 0x10 264547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_ENTRIES 0x41 265547be9ecSRaghu Vatsavayi 266547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_ENTRY_VECTOR_CTL BIT_ULL(32) 267547be9ecSRaghu Vatsavayi 268547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_ADDR(idx) \ 269547be9ecSRaghu Vatsavayi (CN23XX_MSIX_TABLE_ADDR_START + ((idx) * CN23XX_MSIX_TABLE_SIZE)) 270547be9ecSRaghu Vatsavayi 271547be9ecSRaghu Vatsavayi #define CN23XX_MSIX_TABLE_DATA(idx) \ 272547be9ecSRaghu Vatsavayi (CN23XX_MSIX_TABLE_DATA_START + ((idx) * CN23XX_MSIX_TABLE_SIZE)) 273547be9ecSRaghu Vatsavayi 274547be9ecSRaghu Vatsavayi #endif 275