154293ec3SDavid Daney /***********************license start*************** 254293ec3SDavid Daney * Author: Cavium Networks 354293ec3SDavid Daney * 454293ec3SDavid Daney * Contact: support@caviumnetworks.com 554293ec3SDavid Daney * This file is part of the OCTEON SDK 654293ec3SDavid Daney * 7*15f68479SSteven J. Hill * Copyright (c) 2003-2017 Cavium, Inc. 854293ec3SDavid Daney * 954293ec3SDavid Daney * This file is free software; you can redistribute it and/or modify 1054293ec3SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 1154293ec3SDavid Daney * published by the Free Software Foundation. 1254293ec3SDavid Daney * 1354293ec3SDavid Daney * This file is distributed in the hope that it will be useful, but 1454293ec3SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 1554293ec3SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 1654293ec3SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 1754293ec3SDavid Daney * details. 1854293ec3SDavid Daney * 1954293ec3SDavid Daney * You should have received a copy of the GNU General Public License 2054293ec3SDavid Daney * along with this file; if not, write to the Free Software 2154293ec3SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 2254293ec3SDavid Daney * or visit http://www.gnu.org/licenses/. 2354293ec3SDavid Daney * 2454293ec3SDavid Daney * This file may also be available under a different license from Cavium. 2554293ec3SDavid Daney * Contact Cavium Networks for more information 2654293ec3SDavid Daney ***********************license end**************************************/ 2754293ec3SDavid Daney 2854293ec3SDavid Daney #ifndef __CVMX_L2C_DEFS_H__ 2954293ec3SDavid Daney #define __CVMX_L2C_DEFS_H__ 3054293ec3SDavid Daney 31*15f68479SSteven J. Hill #include <uapi/asm/bitfield.h> 32*15f68479SSteven J. Hill 33aa32a955SDavid Daney #define CVMX_L2C_DBG (CVMX_ADD_IO_SEG(0x0001180080000030ull)) 34*15f68479SSteven J. Hill #define CVMX_L2C_CFG (CVMX_ADD_IO_SEG(0x0001180080000000ull)) 35*15f68479SSteven J. Hill #define CVMX_L2C_CTL (CVMX_ADD_IO_SEG(0x0001180080800000ull)) 36aa32a955SDavid Daney #define CVMX_L2C_LCKBASE (CVMX_ADD_IO_SEG(0x0001180080000058ull)) 37aa32a955SDavid Daney #define CVMX_L2C_LCKOFF (CVMX_ADD_IO_SEG(0x0001180080000060ull)) 38*15f68479SSteven J. Hill #define CVMX_L2C_PFCTL (CVMX_ADD_IO_SEG(0x0001180080000090ull)) 39*15f68479SSteven J. Hill #define CVMX_L2C_PFCX(offset) (CVMX_ADD_IO_SEG(0x0001180080000098ull) + \ 40*15f68479SSteven J. Hill ((offset) & 3) * 8) 41aa32a955SDavid Daney #define CVMX_L2C_PFC0 CVMX_L2C_PFCX(0) 42aa32a955SDavid Daney #define CVMX_L2C_PFC1 CVMX_L2C_PFCX(1) 43aa32a955SDavid Daney #define CVMX_L2C_PFC2 CVMX_L2C_PFCX(2) 44aa32a955SDavid Daney #define CVMX_L2C_PFC3 CVMX_L2C_PFCX(3) 45aa32a955SDavid Daney #define CVMX_L2C_SPAR0 (CVMX_ADD_IO_SEG(0x0001180080000068ull)) 46aa32a955SDavid Daney #define CVMX_L2C_SPAR1 (CVMX_ADD_IO_SEG(0x0001180080000070ull)) 47aa32a955SDavid Daney #define CVMX_L2C_SPAR2 (CVMX_ADD_IO_SEG(0x0001180080000078ull)) 48aa32a955SDavid Daney #define CVMX_L2C_SPAR3 (CVMX_ADD_IO_SEG(0x0001180080000080ull)) 49aa32a955SDavid Daney #define CVMX_L2C_SPAR4 (CVMX_ADD_IO_SEG(0x0001180080000088ull)) 50*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PFCX(offset, block_id) \ 51*15f68479SSteven J. Hill (CVMX_ADD_IO_SEG(0x0001180080A00400ull) + (((offset) & 3) + \ 52*15f68479SSteven J. Hill ((block_id) & 7) * 0x8000ull) * 8) 53*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PFC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00400ull) + \ 54*15f68479SSteven J. Hill ((block_id) & 3) * 0x40000ull) 55*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PFC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00408ull) + \ 56*15f68479SSteven J. Hill ((block_id) & 3) * 0x40000ull) 57*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PFC2(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00410ull) + \ 58*15f68479SSteven J. Hill ((block_id) & 3) * 0x40000ull) 59*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PFC3(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00418ull) + \ 60*15f68479SSteven J. Hill ((block_id) & 3) * 0x40000ull) 61*15f68479SSteven J. Hill #define CVMX_L2C_TADX_PRF(offset) (CVMX_ADD_IO_SEG(0x0001180080A00008ull) + \ 62*15f68479SSteven J. Hill ((offset) & 7) * 0x40000ull) 63*15f68479SSteven J. Hill #define CVMX_L2C_TADX_TAG(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00010ull) + \ 64*15f68479SSteven J. Hill ((block_id) & 3) * 0x40000ull) 65*15f68479SSteven J. Hill #define CVMX_L2C_WPAR_IOBX(offset) (CVMX_ADD_IO_SEG(0x0001180080840200ull) + \ 66*15f68479SSteven J. Hill ((offset) & 1) * 8) 67*15f68479SSteven J. Hill #define CVMX_L2C_WPAR_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080840000ull) + \ 68*15f68479SSteven J. Hill ((offset) & 31) * 8) 69*15f68479SSteven J. Hill #define CVMX_L2D_FUS3 (CVMX_ADD_IO_SEG(0x00011800800007B8ull)) 70aa32a955SDavid Daney 71aa32a955SDavid Daney 7254293ec3SDavid Daney union cvmx_l2c_cfg { 7354293ec3SDavid Daney uint64_t u64; 7454293ec3SDavid Daney struct cvmx_l2c_cfg_s { 75*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_20_63:44, 76*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t bstrun:1, 77*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lbist:1, 78*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t xor_bank:1, 79*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t dpres1:1, 80*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t dpres0:1, 81*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t dfill_dis:1, 82*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t fpexp:4, 83*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t fpempty:1, 84*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t fpen:1, 85*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t idxalias:1, 86*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t mwf_crd:4, 87*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t rsp_arb_mode:1, 88*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t rfb_arb_mode:1, 89*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lrf_arb_mode:1, 90*15f68479SSteven J. Hill ;))))))))))))))) 9154293ec3SDavid Daney } s; 92aa32a955SDavid Daney }; 93aa32a955SDavid Daney 94aa32a955SDavid Daney union cvmx_l2c_ctl { 95aa32a955SDavid Daney uint64_t u64; 96aa32a955SDavid Daney struct cvmx_l2c_ctl_s { 97*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_30_63:34, 98*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t sepcmt:1, 99*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t rdf_fast:1, 100*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t disstgl2i:1, 101*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t l2dfsbe:1, 102*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t l2dfdbe:1, 103*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t discclk:1, 104*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t maxvab:4, 105*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t maxlfb:4, 106*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t rsp_arb_mode:1, 107*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t xmc_arb_mode:1, 108*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t ef_ena:1, 109*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t ef_cnt:7, 110*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t vab_thresh:4, 111*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t disecc:1, 112*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t disidxalias:1, 113*15f68479SSteven J. Hill ;)))))))))))))))) 114c5aa59e8SDavid Daney } s; 115aa32a955SDavid Daney }; 116aa32a955SDavid Daney 11754293ec3SDavid Daney union cvmx_l2c_dbg { 11854293ec3SDavid Daney uint64_t u64; 11954293ec3SDavid Daney struct cvmx_l2c_dbg_s { 120*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_15_63:49, 121*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lfb_enum:4, 122*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lfb_dmp:1, 123*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t ppnum:4, 124*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t set:3, 125*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t finv:1, 126*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t l2d:1, 127*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t l2t:1, 128*15f68479SSteven J. Hill ;)))))))) 12954293ec3SDavid Daney } s; 13054293ec3SDavid Daney }; 13154293ec3SDavid Daney 13254293ec3SDavid Daney union cvmx_l2c_pfctl { 13354293ec3SDavid Daney uint64_t u64; 13454293ec3SDavid Daney struct cvmx_l2c_pfctl_s { 135*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_36_63:28, 136*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt3rdclr:1, 137*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt2rdclr:1, 138*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt1rdclr:1, 139*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt0rdclr:1, 140*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt3ena:1, 141*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt3clr:1, 142*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt3sel:6, 143*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt2ena:1, 144*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt2clr:1, 145*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt2sel:6, 146*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt1ena:1, 147*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt1clr:1, 148*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt1sel:6, 149*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt0ena:1, 150*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt0clr:1, 151*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt0sel:6, 152*15f68479SSteven J. Hill ;))))))))))))))))) 15354293ec3SDavid Daney } s; 154aa32a955SDavid Daney }; 155aa32a955SDavid Daney 156aa32a955SDavid Daney union cvmx_l2c_tadx_prf { 157aa32a955SDavid Daney uint64_t u64; 158aa32a955SDavid Daney struct cvmx_l2c_tadx_prf_s { 159*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_32_63:32, 160*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt3sel:8, 161*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt2sel:8, 162*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt1sel:8, 163*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt0sel:8, 164*15f68479SSteven J. Hill ;))))) 165aa32a955SDavid Daney } s; 166aa32a955SDavid Daney }; 167aa32a955SDavid Daney 168aa32a955SDavid Daney union cvmx_l2c_tadx_tag { 169aa32a955SDavid Daney uint64_t u64; 170aa32a955SDavid Daney struct cvmx_l2c_tadx_tag_s { 171*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_46_63:18, 172*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t ecc:6, 173*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_36_39:4, 174*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t tag:19, 175*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_4_16:13, 176*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t use:1, 177*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t valid:1, 178*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t dirty:1, 179*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lock:1, 180*15f68479SSteven J. Hill ;))))))))) 181aa32a955SDavid Daney } s; 182aa32a955SDavid Daney }; 183aa32a955SDavid Daney 184*15f68479SSteven J. Hill union cvmx_l2c_lckbase { 185aa32a955SDavid Daney uint64_t u64; 186*15f68479SSteven J. Hill struct cvmx_l2c_lckbase_s { 187*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_31_63:33, 188*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lck_base:27, 189*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_1_3:3, 190*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lck_ena:1, 191*15f68479SSteven J. Hill ;)))) 192aa32a955SDavid Daney } s; 193aa32a955SDavid Daney }; 194aa32a955SDavid Daney 195*15f68479SSteven J. Hill union cvmx_l2c_lckoff { 196aa32a955SDavid Daney uint64_t u64; 197*15f68479SSteven J. Hill struct cvmx_l2c_lckoff_s { 198*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_10_63:54, 199*15f68479SSteven J. Hill __BITFIELD_FIELD(uint64_t lck_offset:10, 200*15f68479SSteven J. Hill ;)) 201c5aa59e8SDavid Daney } s; 202aa32a955SDavid Daney }; 203aa32a955SDavid Daney 20454293ec3SDavid Daney #endif 205