1412394d1SDavid Daney /***********************license start*************** 2412394d1SDavid Daney * Author: Cavium Networks 3412394d1SDavid Daney * 4412394d1SDavid Daney * Contact: support@caviumnetworks.com 5412394d1SDavid Daney * This file is part of the OCTEON SDK 6412394d1SDavid Daney * 7930cbb73SSteven J. Hill * Copyright (c) 2003-2017 Cavium, Inc. 8412394d1SDavid Daney * 9412394d1SDavid Daney * This file is free software; you can redistribute it and/or modify 10412394d1SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11412394d1SDavid Daney * published by the Free Software Foundation. 12412394d1SDavid Daney * 13412394d1SDavid Daney * This file is distributed in the hope that it will be useful, but 14412394d1SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15412394d1SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16412394d1SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17412394d1SDavid Daney * details. 18412394d1SDavid Daney * 19412394d1SDavid Daney * You should have received a copy of the GNU General Public License 20412394d1SDavid Daney * along with this file; if not, write to the Free Software 21412394d1SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22412394d1SDavid Daney * or visit http://www.gnu.org/licenses/. 23412394d1SDavid Daney * 24412394d1SDavid Daney * This file may also be available under a different license from Cavium. 25412394d1SDavid Daney * Contact Cavium Networks for more information 26412394d1SDavid Daney ***********************license end**************************************/ 27412394d1SDavid Daney 28412394d1SDavid Daney #ifndef __CVMX_SLI_DEFS_H__ 29412394d1SDavid Daney #define __CVMX_SLI_DEFS_H__ 30412394d1SDavid Daney 31930cbb73SSteven J. Hill #include <uapi/asm/bitfield.h> 32412394d1SDavid Daney 33930cbb73SSteven J. Hill #define CVMX_SLI_PCIE_MSI_RCV CVMX_SLI_PCIE_MSI_RCV_FUNC() 34930cbb73SSteven J. Hill static inline uint64_t CVMX_SLI_PCIE_MSI_RCV_FUNC(void) 35930cbb73SSteven J. Hill { 36930cbb73SSteven J. Hill switch (cvmx_get_octeon_family()) { 37930cbb73SSteven J. Hill case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 38930cbb73SSteven J. Hill case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 39930cbb73SSteven J. Hill case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 40930cbb73SSteven J. Hill case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 41930cbb73SSteven J. Hill case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 42930cbb73SSteven J. Hill case OCTEON_CN70XX & OCTEON_FAMILY_MASK: 43930cbb73SSteven J. Hill return 0x0000000000003CB0ull; 44930cbb73SSteven J. Hill case OCTEON_CNF75XX & OCTEON_FAMILY_MASK: 45930cbb73SSteven J. Hill case OCTEON_CN73XX & OCTEON_FAMILY_MASK: 46930cbb73SSteven J. Hill case OCTEON_CN78XX & OCTEON_FAMILY_MASK: 47930cbb73SSteven J. Hill if (OCTEON_IS_MODEL(OCTEON_CN78XX_PASS1_X)) 48930cbb73SSteven J. Hill return 0x0000000000003CB0ull; 49930cbb73SSteven J. Hill default: 50930cbb73SSteven J. Hill return 0x0000000000023CB0ull; 51930cbb73SSteven J. Hill } 52930cbb73SSteven J. Hill } 53930cbb73SSteven J. Hill 54412394d1SDavid Daney 55412394d1SDavid Daney union cvmx_sli_ctl_portx { 56412394d1SDavid Daney uint64_t u64; 57412394d1SDavid Daney struct cvmx_sli_ctl_portx_s { 58930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_22_63:42, 59930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intd:1, 60930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intc:1, 61930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intb:1, 62930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t inta:1, 63930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t dis_port:1, 64930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t waitl_com:1, 65930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intd_map:2, 66930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intc_map:2, 67930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t intb_map:2, 68930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t inta_map:2, 69930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t ctlp_ro:1, 70930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_6_6:1, 71930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t ptlp_ro:1, 72930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_1_4:4, 73930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t wait_com:1, 74930cbb73SSteven J. Hill ;)))))))))))))))) 75412394d1SDavid Daney } s; 76412394d1SDavid Daney }; 77412394d1SDavid Daney 78412394d1SDavid Daney union cvmx_sli_mem_access_ctl { 79412394d1SDavid Daney uint64_t u64; 80412394d1SDavid Daney struct cvmx_sli_mem_access_ctl_s { 81930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_14_63:50, 82930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t max_word:4, 83930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t timer:10, 84930cbb73SSteven J. Hill ;))) 85412394d1SDavid Daney } s; 86412394d1SDavid Daney }; 87412394d1SDavid Daney 88412394d1SDavid Daney union cvmx_sli_s2m_portx_ctl { 89412394d1SDavid Daney uint64_t u64; 90412394d1SDavid Daney struct cvmx_sli_s2m_portx_ctl_s { 91930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_5_63:59, 92930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t wind_d:1, 93930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t bar0_d:1, 94930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t mrrs:3, 95930cbb73SSteven J. Hill ;)))) 96412394d1SDavid Daney } s; 97412394d1SDavid Daney }; 98412394d1SDavid Daney 99930cbb73SSteven J. Hill union cvmx_sli_mem_access_subidx { 100412394d1SDavid Daney uint64_t u64; 101930cbb73SSteven J. Hill struct cvmx_sli_mem_access_subidx_s { 102930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_43_63:21, 103930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t zero:1, 104930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t port:3, 105930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t nmerge:1, 106930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t esr:2, 107930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t esw:2, 108930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t wtype:2, 109930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t rtype:2, 110930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t ba:30, 111930cbb73SSteven J. Hill ;))))))))) 112412394d1SDavid Daney } s; 113930cbb73SSteven J. Hill struct cvmx_sli_mem_access_subidx_cn68xx { 114930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_43_63:21, 115930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t zero:1, 116930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t port:3, 117930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t nmerge:1, 118930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t esr:2, 119930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t esw:2, 120930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t wtype:2, 121930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t rtype:2, 122930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t ba:28, 123930cbb73SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_0_1:2, 124930cbb73SSteven J. Hill ;)))))))))) 125930cbb73SSteven J. Hill } cn68xx; 126412394d1SDavid Daney }; 127412394d1SDavid Daney 128412394d1SDavid Daney #endif 129