1215976Sjmallett/***********************license start*************** 2232812Sjmallett * Copyright (c) 2003-2012 Cavium Inc. (support@cavium.com). All rights 3215976Sjmallett * reserved. 4215976Sjmallett * 5215976Sjmallett * 6215976Sjmallett * Redistribution and use in source and binary forms, with or without 7215976Sjmallett * modification, are permitted provided that the following conditions are 8215976Sjmallett * met: 9215976Sjmallett * 10215976Sjmallett * * Redistributions of source code must retain the above copyright 11215976Sjmallett * notice, this list of conditions and the following disclaimer. 12215976Sjmallett * 13215976Sjmallett * * Redistributions in binary form must reproduce the above 14215976Sjmallett * copyright notice, this list of conditions and the following 15215976Sjmallett * disclaimer in the documentation and/or other materials provided 16215976Sjmallett * with the distribution. 17215976Sjmallett 18232812Sjmallett * * Neither the name of Cavium Inc. nor the names of 19215976Sjmallett * its contributors may be used to endorse or promote products 20215976Sjmallett * derived from this software without specific prior written 21215976Sjmallett * permission. 22215976Sjmallett 23215976Sjmallett * This Software, including technical data, may be subject to U.S. export control 24215976Sjmallett * laws, including the U.S. Export Administration Act and its associated 25215976Sjmallett * regulations, and may be subject to export or import regulations in other 26215976Sjmallett * countries. 27215976Sjmallett 28215976Sjmallett * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29232812Sjmallett * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR 30215976Sjmallett * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31215976Sjmallett * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32215976Sjmallett * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33215976Sjmallett * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34215976Sjmallett * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35215976Sjmallett * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36215976Sjmallett * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37215976Sjmallett * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38215976Sjmallett ***********************license end**************************************/ 39215976Sjmallett 40215976Sjmallett 41215976Sjmallett/** 42215976Sjmallett * cvmx-zip-defs.h 43215976Sjmallett * 44215976Sjmallett * Configuration and status register (CSR) type definitions for 45215976Sjmallett * Octeon zip. 46215976Sjmallett * 47215976Sjmallett * This file is auto generated. Do not edit. 48215976Sjmallett * 49215976Sjmallett * <hr>$Revision$<hr> 50215976Sjmallett * 51215976Sjmallett */ 52232812Sjmallett#ifndef __CVMX_ZIP_DEFS_H__ 53232812Sjmallett#define __CVMX_ZIP_DEFS_H__ 54215976Sjmallett 55215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 56215976Sjmallett#define CVMX_ZIP_CMD_BIST_RESULT CVMX_ZIP_CMD_BIST_RESULT_FUNC() 57215976Sjmallettstatic inline uint64_t CVMX_ZIP_CMD_BIST_RESULT_FUNC(void) 58215976Sjmallett{ 59232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 60215976Sjmallett cvmx_warn("CVMX_ZIP_CMD_BIST_RESULT not supported on this chip\n"); 61215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000080ull); 62215976Sjmallett} 63215976Sjmallett#else 64215976Sjmallett#define CVMX_ZIP_CMD_BIST_RESULT (CVMX_ADD_IO_SEG(0x0001180038000080ull)) 65215976Sjmallett#endif 66215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 67215976Sjmallett#define CVMX_ZIP_CMD_BUF CVMX_ZIP_CMD_BUF_FUNC() 68215976Sjmallettstatic inline uint64_t CVMX_ZIP_CMD_BUF_FUNC(void) 69215976Sjmallett{ 70232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 71215976Sjmallett cvmx_warn("CVMX_ZIP_CMD_BUF not supported on this chip\n"); 72215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000008ull); 73215976Sjmallett} 74215976Sjmallett#else 75215976Sjmallett#define CVMX_ZIP_CMD_BUF (CVMX_ADD_IO_SEG(0x0001180038000008ull)) 76215976Sjmallett#endif 77215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 78215976Sjmallett#define CVMX_ZIP_CMD_CTL CVMX_ZIP_CMD_CTL_FUNC() 79215976Sjmallettstatic inline uint64_t CVMX_ZIP_CMD_CTL_FUNC(void) 80215976Sjmallett{ 81232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 82215976Sjmallett cvmx_warn("CVMX_ZIP_CMD_CTL not supported on this chip\n"); 83215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000000ull); 84215976Sjmallett} 85215976Sjmallett#else 86215976Sjmallett#define CVMX_ZIP_CMD_CTL (CVMX_ADD_IO_SEG(0x0001180038000000ull)) 87215976Sjmallett#endif 88215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 89215976Sjmallett#define CVMX_ZIP_CONSTANTS CVMX_ZIP_CONSTANTS_FUNC() 90215976Sjmallettstatic inline uint64_t CVMX_ZIP_CONSTANTS_FUNC(void) 91215976Sjmallett{ 92232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 93215976Sjmallett cvmx_warn("CVMX_ZIP_CONSTANTS not supported on this chip\n"); 94215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800380000A0ull); 95215976Sjmallett} 96215976Sjmallett#else 97215976Sjmallett#define CVMX_ZIP_CONSTANTS (CVMX_ADD_IO_SEG(0x00011800380000A0ull)) 98215976Sjmallett#endif 99215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 100232812Sjmallettstatic inline uint64_t CVMX_ZIP_COREX_BIST_STATUS(unsigned long offset) 101232812Sjmallett{ 102232812Sjmallett if (!( 103232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 104232812Sjmallett cvmx_warn("CVMX_ZIP_COREX_BIST_STATUS(%lu) is invalid on this chip\n", offset); 105232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000520ull) + ((offset) & 1) * 8; 106232812Sjmallett} 107232812Sjmallett#else 108232812Sjmallett#define CVMX_ZIP_COREX_BIST_STATUS(offset) (CVMX_ADD_IO_SEG(0x0001180038000520ull) + ((offset) & 1) * 8) 109232812Sjmallett#endif 110232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 111232812Sjmallett#define CVMX_ZIP_CTL_BIST_STATUS CVMX_ZIP_CTL_BIST_STATUS_FUNC() 112232812Sjmallettstatic inline uint64_t CVMX_ZIP_CTL_BIST_STATUS_FUNC(void) 113232812Sjmallett{ 114232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 115232812Sjmallett cvmx_warn("CVMX_ZIP_CTL_BIST_STATUS not supported on this chip\n"); 116232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000510ull); 117232812Sjmallett} 118232812Sjmallett#else 119232812Sjmallett#define CVMX_ZIP_CTL_BIST_STATUS (CVMX_ADD_IO_SEG(0x0001180038000510ull)) 120232812Sjmallett#endif 121232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 122232812Sjmallett#define CVMX_ZIP_CTL_CFG CVMX_ZIP_CTL_CFG_FUNC() 123232812Sjmallettstatic inline uint64_t CVMX_ZIP_CTL_CFG_FUNC(void) 124232812Sjmallett{ 125232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 126232812Sjmallett cvmx_warn("CVMX_ZIP_CTL_CFG not supported on this chip\n"); 127232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000560ull); 128232812Sjmallett} 129232812Sjmallett#else 130232812Sjmallett#define CVMX_ZIP_CTL_CFG (CVMX_ADD_IO_SEG(0x0001180038000560ull)) 131232812Sjmallett#endif 132232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 133232812Sjmallettstatic inline uint64_t CVMX_ZIP_DBG_COREX_INST(unsigned long offset) 134232812Sjmallett{ 135232812Sjmallett if (!( 136232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 137232812Sjmallett cvmx_warn("CVMX_ZIP_DBG_COREX_INST(%lu) is invalid on this chip\n", offset); 138232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000640ull) + ((offset) & 1) * 8; 139232812Sjmallett} 140232812Sjmallett#else 141232812Sjmallett#define CVMX_ZIP_DBG_COREX_INST(offset) (CVMX_ADD_IO_SEG(0x0001180038000640ull) + ((offset) & 1) * 8) 142232812Sjmallett#endif 143232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 144232812Sjmallettstatic inline uint64_t CVMX_ZIP_DBG_COREX_STA(unsigned long offset) 145232812Sjmallett{ 146232812Sjmallett if (!( 147232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 148232812Sjmallett cvmx_warn("CVMX_ZIP_DBG_COREX_STA(%lu) is invalid on this chip\n", offset); 149232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000680ull) + ((offset) & 1) * 8; 150232812Sjmallett} 151232812Sjmallett#else 152232812Sjmallett#define CVMX_ZIP_DBG_COREX_STA(offset) (CVMX_ADD_IO_SEG(0x0001180038000680ull) + ((offset) & 1) * 8) 153232812Sjmallett#endif 154232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 155232812Sjmallettstatic inline uint64_t CVMX_ZIP_DBG_QUEX_STA(unsigned long offset) 156232812Sjmallett{ 157232812Sjmallett if (!( 158232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 159232812Sjmallett cvmx_warn("CVMX_ZIP_DBG_QUEX_STA(%lu) is invalid on this chip\n", offset); 160232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000600ull) + ((offset) & 1) * 8; 161232812Sjmallett} 162232812Sjmallett#else 163232812Sjmallett#define CVMX_ZIP_DBG_QUEX_STA(offset) (CVMX_ADD_IO_SEG(0x0001180038000600ull) + ((offset) & 1) * 8) 164232812Sjmallett#endif 165232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 166215976Sjmallett#define CVMX_ZIP_DEBUG0 CVMX_ZIP_DEBUG0_FUNC() 167215976Sjmallettstatic inline uint64_t CVMX_ZIP_DEBUG0_FUNC(void) 168215976Sjmallett{ 169232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 170215976Sjmallett cvmx_warn("CVMX_ZIP_DEBUG0 not supported on this chip\n"); 171215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000098ull); 172215976Sjmallett} 173215976Sjmallett#else 174215976Sjmallett#define CVMX_ZIP_DEBUG0 (CVMX_ADD_IO_SEG(0x0001180038000098ull)) 175215976Sjmallett#endif 176215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 177232812Sjmallett#define CVMX_ZIP_ECC_CTL CVMX_ZIP_ECC_CTL_FUNC() 178232812Sjmallettstatic inline uint64_t CVMX_ZIP_ECC_CTL_FUNC(void) 179232812Sjmallett{ 180232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 181232812Sjmallett cvmx_warn("CVMX_ZIP_ECC_CTL not supported on this chip\n"); 182232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000568ull); 183232812Sjmallett} 184232812Sjmallett#else 185232812Sjmallett#define CVMX_ZIP_ECC_CTL (CVMX_ADD_IO_SEG(0x0001180038000568ull)) 186232812Sjmallett#endif 187232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 188215976Sjmallett#define CVMX_ZIP_ERROR CVMX_ZIP_ERROR_FUNC() 189215976Sjmallettstatic inline uint64_t CVMX_ZIP_ERROR_FUNC(void) 190215976Sjmallett{ 191232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 192215976Sjmallett cvmx_warn("CVMX_ZIP_ERROR not supported on this chip\n"); 193215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000088ull); 194215976Sjmallett} 195215976Sjmallett#else 196215976Sjmallett#define CVMX_ZIP_ERROR (CVMX_ADD_IO_SEG(0x0001180038000088ull)) 197215976Sjmallett#endif 198215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 199232812Sjmallett#define CVMX_ZIP_INT_ENA CVMX_ZIP_INT_ENA_FUNC() 200232812Sjmallettstatic inline uint64_t CVMX_ZIP_INT_ENA_FUNC(void) 201232812Sjmallett{ 202232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 203232812Sjmallett cvmx_warn("CVMX_ZIP_INT_ENA not supported on this chip\n"); 204232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000580ull); 205232812Sjmallett} 206232812Sjmallett#else 207232812Sjmallett#define CVMX_ZIP_INT_ENA (CVMX_ADD_IO_SEG(0x0001180038000580ull)) 208232812Sjmallett#endif 209232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 210215976Sjmallett#define CVMX_ZIP_INT_MASK CVMX_ZIP_INT_MASK_FUNC() 211215976Sjmallettstatic inline uint64_t CVMX_ZIP_INT_MASK_FUNC(void) 212215976Sjmallett{ 213232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 214215976Sjmallett cvmx_warn("CVMX_ZIP_INT_MASK not supported on this chip\n"); 215215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000090ull); 216215976Sjmallett} 217215976Sjmallett#else 218215976Sjmallett#define CVMX_ZIP_INT_MASK (CVMX_ADD_IO_SEG(0x0001180038000090ull)) 219215976Sjmallett#endif 220215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 221232812Sjmallett#define CVMX_ZIP_INT_REG CVMX_ZIP_INT_REG_FUNC() 222232812Sjmallettstatic inline uint64_t CVMX_ZIP_INT_REG_FUNC(void) 223232812Sjmallett{ 224232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 225232812Sjmallett cvmx_warn("CVMX_ZIP_INT_REG not supported on this chip\n"); 226232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000570ull); 227232812Sjmallett} 228232812Sjmallett#else 229232812Sjmallett#define CVMX_ZIP_INT_REG (CVMX_ADD_IO_SEG(0x0001180038000570ull)) 230232812Sjmallett#endif 231232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 232232812Sjmallettstatic inline uint64_t CVMX_ZIP_QUEX_BUF(unsigned long offset) 233232812Sjmallett{ 234232812Sjmallett if (!( 235232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 236232812Sjmallett cvmx_warn("CVMX_ZIP_QUEX_BUF(%lu) is invalid on this chip\n", offset); 237232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000100ull) + ((offset) & 1) * 8; 238232812Sjmallett} 239232812Sjmallett#else 240232812Sjmallett#define CVMX_ZIP_QUEX_BUF(offset) (CVMX_ADD_IO_SEG(0x0001180038000100ull) + ((offset) & 1) * 8) 241232812Sjmallett#endif 242232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 243232812Sjmallettstatic inline uint64_t CVMX_ZIP_QUEX_ECC_ERR_STA(unsigned long offset) 244232812Sjmallett{ 245232812Sjmallett if (!( 246232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 247232812Sjmallett cvmx_warn("CVMX_ZIP_QUEX_ECC_ERR_STA(%lu) is invalid on this chip\n", offset); 248232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000590ull) + ((offset) & 1) * 8; 249232812Sjmallett} 250232812Sjmallett#else 251232812Sjmallett#define CVMX_ZIP_QUEX_ECC_ERR_STA(offset) (CVMX_ADD_IO_SEG(0x0001180038000590ull) + ((offset) & 1) * 8) 252232812Sjmallett#endif 253232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 254232812Sjmallettstatic inline uint64_t CVMX_ZIP_QUEX_MAP(unsigned long offset) 255232812Sjmallett{ 256232812Sjmallett if (!( 257232812Sjmallett (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((offset <= 1))))) 258232812Sjmallett cvmx_warn("CVMX_ZIP_QUEX_MAP(%lu) is invalid on this chip\n", offset); 259232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000300ull) + ((offset) & 1) * 8; 260232812Sjmallett} 261232812Sjmallett#else 262232812Sjmallett#define CVMX_ZIP_QUEX_MAP(offset) (CVMX_ADD_IO_SEG(0x0001180038000300ull) + ((offset) & 1) * 8) 263232812Sjmallett#endif 264232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 265232812Sjmallett#define CVMX_ZIP_QUE_ENA CVMX_ZIP_QUE_ENA_FUNC() 266232812Sjmallettstatic inline uint64_t CVMX_ZIP_QUE_ENA_FUNC(void) 267232812Sjmallett{ 268232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 269232812Sjmallett cvmx_warn("CVMX_ZIP_QUE_ENA not supported on this chip\n"); 270232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000500ull); 271232812Sjmallett} 272232812Sjmallett#else 273232812Sjmallett#define CVMX_ZIP_QUE_ENA (CVMX_ADD_IO_SEG(0x0001180038000500ull)) 274232812Sjmallett#endif 275232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 276232812Sjmallett#define CVMX_ZIP_QUE_PRI CVMX_ZIP_QUE_PRI_FUNC() 277232812Sjmallettstatic inline uint64_t CVMX_ZIP_QUE_PRI_FUNC(void) 278232812Sjmallett{ 279232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN68XX))) 280232812Sjmallett cvmx_warn("CVMX_ZIP_QUE_PRI not supported on this chip\n"); 281232812Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000508ull); 282232812Sjmallett} 283232812Sjmallett#else 284232812Sjmallett#define CVMX_ZIP_QUE_PRI (CVMX_ADD_IO_SEG(0x0001180038000508ull)) 285232812Sjmallett#endif 286232812Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 287215976Sjmallett#define CVMX_ZIP_THROTTLE CVMX_ZIP_THROTTLE_FUNC() 288215976Sjmallettstatic inline uint64_t CVMX_ZIP_THROTTLE_FUNC(void) 289215976Sjmallett{ 290232812Sjmallett if (!(OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX))) 291215976Sjmallett cvmx_warn("CVMX_ZIP_THROTTLE not supported on this chip\n"); 292215976Sjmallett return CVMX_ADD_IO_SEG(0x0001180038000010ull); 293215976Sjmallett} 294215976Sjmallett#else 295215976Sjmallett#define CVMX_ZIP_THROTTLE (CVMX_ADD_IO_SEG(0x0001180038000010ull)) 296215976Sjmallett#endif 297215976Sjmallett 298215976Sjmallett/** 299215976Sjmallett * cvmx_zip_cmd_bist_result 300215976Sjmallett * 301232812Sjmallett * ZIP_CMD_BIST_RESULT = ZIP Command BIST Result Register 302232812Sjmallett * 303232812Sjmallett * Description: 304232812Sjmallett * This register is a reformatted register with same fields as O63 2.x. 305232812Sjmallett * The purpose of this register is for software backward compatibility. 306232812Sjmallett * Some bits are the bist result of combined status of memories (per bit, 0=pass and 1=fail). 307215976Sjmallett */ 308232812Sjmallettunion cvmx_zip_cmd_bist_result { 309215976Sjmallett uint64_t u64; 310232812Sjmallett struct cvmx_zip_cmd_bist_result_s { 311232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 312232812Sjmallett uint64_t reserved_57_63 : 7; 313232812Sjmallett uint64_t zip_core : 53; /**< BiST result of the ZIP_CORE memories */ 314215976Sjmallett uint64_t zip_ctl : 4; /**< BiST result of the ZIP_CTL memories */ 315215976Sjmallett#else 316215976Sjmallett uint64_t zip_ctl : 4; 317232812Sjmallett uint64_t zip_core : 53; 318232812Sjmallett uint64_t reserved_57_63 : 7; 319215976Sjmallett#endif 320215976Sjmallett } s; 321232812Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx { 322232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 323215976Sjmallett uint64_t reserved_31_63 : 33; 324215976Sjmallett uint64_t zip_core : 27; /**< BiST result of the ZIP_CORE memories */ 325215976Sjmallett uint64_t zip_ctl : 4; /**< BiST result of the ZIP_CTL memories */ 326215976Sjmallett#else 327215976Sjmallett uint64_t zip_ctl : 4; 328215976Sjmallett uint64_t zip_core : 27; 329215976Sjmallett uint64_t reserved_31_63 : 33; 330215976Sjmallett#endif 331215976Sjmallett } cn31xx; 332215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn38xx; 333215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn38xxp2; 334215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn56xx; 335215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn56xxp1; 336215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn58xx; 337215976Sjmallett struct cvmx_zip_cmd_bist_result_cn31xx cn58xxp1; 338232812Sjmallett struct cvmx_zip_cmd_bist_result_s cn61xx; 339215976Sjmallett struct cvmx_zip_cmd_bist_result_s cn63xx; 340232812Sjmallett struct cvmx_zip_cmd_bist_result_cn63xxp1 { 341232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 342232812Sjmallett uint64_t reserved_43_63 : 21; 343232812Sjmallett uint64_t zip_core : 39; /**< BiST result of the ZIP_CORE memories */ 344232812Sjmallett uint64_t zip_ctl : 4; /**< BiST result of the ZIP_CTL memories */ 345232812Sjmallett#else 346232812Sjmallett uint64_t zip_ctl : 4; 347232812Sjmallett uint64_t zip_core : 39; 348232812Sjmallett uint64_t reserved_43_63 : 21; 349232812Sjmallett#endif 350232812Sjmallett } cn63xxp1; 351232812Sjmallett struct cvmx_zip_cmd_bist_result_s cn66xx; 352232812Sjmallett struct cvmx_zip_cmd_bist_result_s cn68xx; 353232812Sjmallett struct cvmx_zip_cmd_bist_result_s cn68xxp1; 354215976Sjmallett}; 355215976Sjmalletttypedef union cvmx_zip_cmd_bist_result cvmx_zip_cmd_bist_result_t; 356215976Sjmallett 357215976Sjmallett/** 358215976Sjmallett * cvmx_zip_cmd_buf 359215976Sjmallett * 360232812Sjmallett * ZIP_CMD_BUF = ZIP Command Buffer Parameter Register 361232812Sjmallett * 362232812Sjmallett * Description: 363232812Sjmallett * This is an alias to ZIP_QUE0_BUF. The purpose of this register is for software backward compatibility. 364232812Sjmallett * This register set the buffer parameters for the instruction queue 0. 365215976Sjmallett */ 366232812Sjmallettunion cvmx_zip_cmd_buf { 367215976Sjmallett uint64_t u64; 368232812Sjmallett struct cvmx_zip_cmd_buf_s { 369232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 370215976Sjmallett uint64_t reserved_58_63 : 6; 371215976Sjmallett uint64_t dwb : 9; /**< Number of DontWriteBacks */ 372215976Sjmallett uint64_t pool : 3; /**< Free list used to free command buffer segments */ 373215976Sjmallett uint64_t size : 13; /**< Number of uint64s per command buffer segment */ 374215976Sjmallett uint64_t ptr : 33; /**< Initial command buffer pointer[39:7] (128B-aligned) */ 375215976Sjmallett#else 376215976Sjmallett uint64_t ptr : 33; 377215976Sjmallett uint64_t size : 13; 378215976Sjmallett uint64_t pool : 3; 379215976Sjmallett uint64_t dwb : 9; 380215976Sjmallett uint64_t reserved_58_63 : 6; 381215976Sjmallett#endif 382215976Sjmallett } s; 383215976Sjmallett struct cvmx_zip_cmd_buf_s cn31xx; 384215976Sjmallett struct cvmx_zip_cmd_buf_s cn38xx; 385215976Sjmallett struct cvmx_zip_cmd_buf_s cn38xxp2; 386215976Sjmallett struct cvmx_zip_cmd_buf_s cn56xx; 387215976Sjmallett struct cvmx_zip_cmd_buf_s cn56xxp1; 388215976Sjmallett struct cvmx_zip_cmd_buf_s cn58xx; 389215976Sjmallett struct cvmx_zip_cmd_buf_s cn58xxp1; 390232812Sjmallett struct cvmx_zip_cmd_buf_s cn61xx; 391215976Sjmallett struct cvmx_zip_cmd_buf_s cn63xx; 392215976Sjmallett struct cvmx_zip_cmd_buf_s cn63xxp1; 393232812Sjmallett struct cvmx_zip_cmd_buf_s cn66xx; 394232812Sjmallett struct cvmx_zip_cmd_buf_s cn68xx; 395232812Sjmallett struct cvmx_zip_cmd_buf_s cn68xxp1; 396215976Sjmallett}; 397215976Sjmalletttypedef union cvmx_zip_cmd_buf cvmx_zip_cmd_buf_t; 398215976Sjmallett 399215976Sjmallett/** 400215976Sjmallett * cvmx_zip_cmd_ctl 401232812Sjmallett * 402232812Sjmallett * ZIP_CMD_CTL = ZIP Clock/Reset Control Register 403232812Sjmallett * 404232812Sjmallett * Description: 405232812Sjmallett * This register controls clock and reset. 406215976Sjmallett */ 407232812Sjmallettunion cvmx_zip_cmd_ctl { 408215976Sjmallett uint64_t u64; 409232812Sjmallett struct cvmx_zip_cmd_ctl_s { 410232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 411215976Sjmallett uint64_t reserved_2_63 : 62; 412232812Sjmallett uint64_t forceclk : 1; /**< Force zip_ctl__zip<0|1>_clock_on_b == 1 when set */ 413232812Sjmallett uint64_t reset : 1; /**< Reset one-shot pulse for zip cores */ 414215976Sjmallett#else 415215976Sjmallett uint64_t reset : 1; 416215976Sjmallett uint64_t forceclk : 1; 417215976Sjmallett uint64_t reserved_2_63 : 62; 418215976Sjmallett#endif 419215976Sjmallett } s; 420215976Sjmallett struct cvmx_zip_cmd_ctl_s cn31xx; 421215976Sjmallett struct cvmx_zip_cmd_ctl_s cn38xx; 422215976Sjmallett struct cvmx_zip_cmd_ctl_s cn38xxp2; 423215976Sjmallett struct cvmx_zip_cmd_ctl_s cn56xx; 424215976Sjmallett struct cvmx_zip_cmd_ctl_s cn56xxp1; 425215976Sjmallett struct cvmx_zip_cmd_ctl_s cn58xx; 426215976Sjmallett struct cvmx_zip_cmd_ctl_s cn58xxp1; 427232812Sjmallett struct cvmx_zip_cmd_ctl_s cn61xx; 428215976Sjmallett struct cvmx_zip_cmd_ctl_s cn63xx; 429215976Sjmallett struct cvmx_zip_cmd_ctl_s cn63xxp1; 430232812Sjmallett struct cvmx_zip_cmd_ctl_s cn66xx; 431232812Sjmallett struct cvmx_zip_cmd_ctl_s cn68xx; 432232812Sjmallett struct cvmx_zip_cmd_ctl_s cn68xxp1; 433215976Sjmallett}; 434215976Sjmalletttypedef union cvmx_zip_cmd_ctl cvmx_zip_cmd_ctl_t; 435215976Sjmallett 436215976Sjmallett/** 437215976Sjmallett * cvmx_zip_constants 438215976Sjmallett * 439232812Sjmallett * ZIP_CONSTANTS = ZIP Constants Register 440215976Sjmallett * 441232812Sjmallett * Description: 442232812Sjmallett * This contains all the current implementation related parameters of the zip core in this chip. 443215976Sjmallett */ 444232812Sjmallettunion cvmx_zip_constants { 445215976Sjmallett uint64_t u64; 446232812Sjmallett struct cvmx_zip_constants_s { 447232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 448232812Sjmallett uint64_t nexec : 8; /**< Number of available ZIP Exec Units */ 449232812Sjmallett uint64_t reserved_49_55 : 7; 450232812Sjmallett uint64_t syncflush_capable : 1; /**< 1: SYNCFLUSH is supported 451232812Sjmallett - 0: SYNCFLUSH is not supported. 452232812Sjmallett Note: for O68 1.0, SYNCFLUSH is supported 453232812Sjmallett although this field is 0. */ 454232812Sjmallett uint64_t depth : 16; /**< Maximum search depth for compression */ 455232812Sjmallett uint64_t onfsize : 12; /**< Output near full threshold in bytes */ 456232812Sjmallett uint64_t ctxsize : 12; /**< Decompression Context size in bytes */ 457232812Sjmallett uint64_t reserved_1_7 : 7; 458232812Sjmallett uint64_t disabled : 1; /**< 1=zip is disabled, 0=zip is enabled */ 459232812Sjmallett#else 460232812Sjmallett uint64_t disabled : 1; 461232812Sjmallett uint64_t reserved_1_7 : 7; 462232812Sjmallett uint64_t ctxsize : 12; 463232812Sjmallett uint64_t onfsize : 12; 464232812Sjmallett uint64_t depth : 16; 465232812Sjmallett uint64_t syncflush_capable : 1; 466232812Sjmallett uint64_t reserved_49_55 : 7; 467232812Sjmallett uint64_t nexec : 8; 468232812Sjmallett#endif 469232812Sjmallett } s; 470232812Sjmallett struct cvmx_zip_constants_cn31xx { 471232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 472215976Sjmallett uint64_t reserved_48_63 : 16; 473215976Sjmallett uint64_t depth : 16; /**< Maximum search depth for compression */ 474215976Sjmallett uint64_t onfsize : 12; /**< Output near full threshhold in bytes */ 475215976Sjmallett uint64_t ctxsize : 12; /**< Context size in bytes */ 476215976Sjmallett uint64_t reserved_1_7 : 7; 477215976Sjmallett uint64_t disabled : 1; /**< 1=zip unit isdisabled, 0=zip unit not disabled */ 478215976Sjmallett#else 479215976Sjmallett uint64_t disabled : 1; 480215976Sjmallett uint64_t reserved_1_7 : 7; 481215976Sjmallett uint64_t ctxsize : 12; 482215976Sjmallett uint64_t onfsize : 12; 483215976Sjmallett uint64_t depth : 16; 484215976Sjmallett uint64_t reserved_48_63 : 16; 485215976Sjmallett#endif 486232812Sjmallett } cn31xx; 487232812Sjmallett struct cvmx_zip_constants_cn31xx cn38xx; 488232812Sjmallett struct cvmx_zip_constants_cn31xx cn38xxp2; 489232812Sjmallett struct cvmx_zip_constants_cn31xx cn56xx; 490232812Sjmallett struct cvmx_zip_constants_cn31xx cn56xxp1; 491232812Sjmallett struct cvmx_zip_constants_cn31xx cn58xx; 492232812Sjmallett struct cvmx_zip_constants_cn31xx cn58xxp1; 493232812Sjmallett struct cvmx_zip_constants_s cn61xx; 494232812Sjmallett struct cvmx_zip_constants_cn31xx cn63xx; 495232812Sjmallett struct cvmx_zip_constants_cn31xx cn63xxp1; 496232812Sjmallett struct cvmx_zip_constants_s cn66xx; 497232812Sjmallett struct cvmx_zip_constants_s cn68xx; 498232812Sjmallett struct cvmx_zip_constants_cn31xx cn68xxp1; 499215976Sjmallett}; 500215976Sjmalletttypedef union cvmx_zip_constants cvmx_zip_constants_t; 501215976Sjmallett 502215976Sjmallett/** 503232812Sjmallett * cvmx_zip_core#_bist_status 504232812Sjmallett * 505232812Sjmallett * ZIP_CORE_BIST_STATUS = ZIP CORE Bist Status Registers 506232812Sjmallett * 507232812Sjmallett * Description: 508232812Sjmallett * Those register have the bist status of memories in zip cores. 509232812Sjmallett * Each bit is the bist result of an individual memory (per bit, 0=pass and 1=fail). 510232812Sjmallett */ 511232812Sjmallettunion cvmx_zip_corex_bist_status { 512232812Sjmallett uint64_t u64; 513232812Sjmallett struct cvmx_zip_corex_bist_status_s { 514232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 515232812Sjmallett uint64_t reserved_53_63 : 11; 516232812Sjmallett uint64_t bstatus : 53; /**< BIST result of the ZIP_CORE memories */ 517232812Sjmallett#else 518232812Sjmallett uint64_t bstatus : 53; 519232812Sjmallett uint64_t reserved_53_63 : 11; 520232812Sjmallett#endif 521232812Sjmallett } s; 522232812Sjmallett struct cvmx_zip_corex_bist_status_s cn68xx; 523232812Sjmallett struct cvmx_zip_corex_bist_status_s cn68xxp1; 524232812Sjmallett}; 525232812Sjmalletttypedef union cvmx_zip_corex_bist_status cvmx_zip_corex_bist_status_t; 526232812Sjmallett 527232812Sjmallett/** 528232812Sjmallett * cvmx_zip_ctl_bist_status 529232812Sjmallett * 530232812Sjmallett * ZIP_CTL_BIST_STATUS = ZIP CONTROL Bist Status Register 531232812Sjmallett * 532232812Sjmallett * Description: 533232812Sjmallett * This register has the bist status of memories in zip_ctl (Instruction Buffer, G/S Pointer Fifo, Input Data Buffer, 534232812Sjmallett * Output Data Buffers). 535232812Sjmallett * Each bit is the bist result of an individual memory (per bit, 0=pass and 1=fail). 536232812Sjmallett */ 537232812Sjmallettunion cvmx_zip_ctl_bist_status { 538232812Sjmallett uint64_t u64; 539232812Sjmallett struct cvmx_zip_ctl_bist_status_s { 540232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 541232812Sjmallett uint64_t reserved_7_63 : 57; 542232812Sjmallett uint64_t bstatus : 7; /**< BIST result of the memories */ 543232812Sjmallett#else 544232812Sjmallett uint64_t bstatus : 7; 545232812Sjmallett uint64_t reserved_7_63 : 57; 546232812Sjmallett#endif 547232812Sjmallett } s; 548232812Sjmallett struct cvmx_zip_ctl_bist_status_s cn68xx; 549232812Sjmallett struct cvmx_zip_ctl_bist_status_s cn68xxp1; 550232812Sjmallett}; 551232812Sjmalletttypedef union cvmx_zip_ctl_bist_status cvmx_zip_ctl_bist_status_t; 552232812Sjmallett 553232812Sjmallett/** 554232812Sjmallett * cvmx_zip_ctl_cfg 555232812Sjmallett * 556232812Sjmallett * ZIP_CTL_CFG = ZIP Controller Configuration Register 557232812Sjmallett * 558232812Sjmallett * Description: 559232812Sjmallett * This register controls the behavior zip dma engine. It is recommended to kept those field in the default values for normal 560232812Sjmallett * operation. Changing the values of the fields may be useful for diagnostics. 561232812Sjmallett */ 562232812Sjmallettunion cvmx_zip_ctl_cfg { 563232812Sjmallett uint64_t u64; 564232812Sjmallett struct cvmx_zip_ctl_cfg_s { 565232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 566232812Sjmallett uint64_t reserved_27_63 : 37; 567232812Sjmallett uint64_t ildf : 3; /**< Instruction Load Command FIFO Credits <= 4 */ 568232812Sjmallett uint64_t reserved_22_23 : 2; 569232812Sjmallett uint64_t iprf : 2; /**< Instruction Page Return Cmd FIFO Credits <= 2 */ 570232812Sjmallett uint64_t reserved_19_19 : 1; 571232812Sjmallett uint64_t gstf : 3; /**< G/S Tag FIFO Credits <= 4 */ 572232812Sjmallett uint64_t reserved_15_15 : 1; 573232812Sjmallett uint64_t stcf : 3; /**< Store Command FIFO Credits <= 4 */ 574232812Sjmallett uint64_t reserved_11_11 : 1; 575232812Sjmallett uint64_t ldf : 3; /**< Load Cmd FIFO Credits <= 4 */ 576232812Sjmallett uint64_t reserved_6_7 : 2; 577232812Sjmallett uint64_t wkqf : 2; /**< WorkQueue FIFO Credits <= 2 */ 578232812Sjmallett uint64_t reserved_2_3 : 2; 579232812Sjmallett uint64_t busy : 1; /**< 1: ZIP system is busy; 0: ZIP system is idle. */ 580232812Sjmallett uint64_t lmod : 1; /**< Legacy Mode. */ 581232812Sjmallett#else 582232812Sjmallett uint64_t lmod : 1; 583232812Sjmallett uint64_t busy : 1; 584232812Sjmallett uint64_t reserved_2_3 : 2; 585232812Sjmallett uint64_t wkqf : 2; 586232812Sjmallett uint64_t reserved_6_7 : 2; 587232812Sjmallett uint64_t ldf : 3; 588232812Sjmallett uint64_t reserved_11_11 : 1; 589232812Sjmallett uint64_t stcf : 3; 590232812Sjmallett uint64_t reserved_15_15 : 1; 591232812Sjmallett uint64_t gstf : 3; 592232812Sjmallett uint64_t reserved_19_19 : 1; 593232812Sjmallett uint64_t iprf : 2; 594232812Sjmallett uint64_t reserved_22_23 : 2; 595232812Sjmallett uint64_t ildf : 3; 596232812Sjmallett uint64_t reserved_27_63 : 37; 597232812Sjmallett#endif 598232812Sjmallett } s; 599232812Sjmallett struct cvmx_zip_ctl_cfg_s cn68xx; 600232812Sjmallett struct cvmx_zip_ctl_cfg_s cn68xxp1; 601232812Sjmallett}; 602232812Sjmalletttypedef union cvmx_zip_ctl_cfg cvmx_zip_ctl_cfg_t; 603232812Sjmallett 604232812Sjmallett/** 605232812Sjmallett * cvmx_zip_dbg_core#_inst 606232812Sjmallett * 607232812Sjmallett * ZIP_DBG_COREX_INST = ZIP Core Current Instruction Registers 608232812Sjmallett * 609232812Sjmallett * Description: 610232812Sjmallett * This register reflects the status of the current instruction that zip core is executing/ has executed. 611232812Sjmallett * This register is only for debug use. 612232812Sjmallett */ 613232812Sjmallettunion cvmx_zip_dbg_corex_inst { 614232812Sjmallett uint64_t u64; 615232812Sjmallett struct cvmx_zip_dbg_corex_inst_s { 616232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 617232812Sjmallett uint64_t busy : 1; /**< Core State: 1 - Core is busy; 0 - Core is idle */ 618232812Sjmallett uint64_t reserved_33_62 : 30; 619232812Sjmallett uint64_t qid : 1; /**< Queue Index of instruction executed (BUSY=0) or 620232812Sjmallett being executed (BUSY=1) on this core */ 621232812Sjmallett uint64_t iid : 32; /**< Instruction Index executed (BUSY=0) or being 622232812Sjmallett executed (BUSY=1) on this core */ 623232812Sjmallett#else 624232812Sjmallett uint64_t iid : 32; 625232812Sjmallett uint64_t qid : 1; 626232812Sjmallett uint64_t reserved_33_62 : 30; 627232812Sjmallett uint64_t busy : 1; 628232812Sjmallett#endif 629232812Sjmallett } s; 630232812Sjmallett struct cvmx_zip_dbg_corex_inst_s cn68xx; 631232812Sjmallett struct cvmx_zip_dbg_corex_inst_s cn68xxp1; 632232812Sjmallett}; 633232812Sjmalletttypedef union cvmx_zip_dbg_corex_inst cvmx_zip_dbg_corex_inst_t; 634232812Sjmallett 635232812Sjmallett/** 636232812Sjmallett * cvmx_zip_dbg_core#_sta 637232812Sjmallett * 638232812Sjmallett * ZIP_DBG_COREX_STA = ZIP Core Status Registers 639232812Sjmallett * 640232812Sjmallett * Description: 641232812Sjmallett * These register reflect the status of the zip cores. 642232812Sjmallett * This register is only for debug use. 643232812Sjmallett */ 644232812Sjmallettunion cvmx_zip_dbg_corex_sta { 645232812Sjmallett uint64_t u64; 646232812Sjmallett struct cvmx_zip_dbg_corex_sta_s { 647232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 648232812Sjmallett uint64_t busy : 1; /**< Core State: 1 - Core is busy; 0 - Core is idle */ 649232812Sjmallett uint64_t reserved_37_62 : 26; 650232812Sjmallett uint64_t ist : 5; /**< State of current instruction is executing */ 651232812Sjmallett uint64_t nie : 32; /**< Number of instructions executed on this core */ 652232812Sjmallett#else 653232812Sjmallett uint64_t nie : 32; 654232812Sjmallett uint64_t ist : 5; 655232812Sjmallett uint64_t reserved_37_62 : 26; 656232812Sjmallett uint64_t busy : 1; 657232812Sjmallett#endif 658232812Sjmallett } s; 659232812Sjmallett struct cvmx_zip_dbg_corex_sta_s cn68xx; 660232812Sjmallett struct cvmx_zip_dbg_corex_sta_s cn68xxp1; 661232812Sjmallett}; 662232812Sjmalletttypedef union cvmx_zip_dbg_corex_sta cvmx_zip_dbg_corex_sta_t; 663232812Sjmallett 664232812Sjmallett/** 665232812Sjmallett * cvmx_zip_dbg_que#_sta 666232812Sjmallett * 667232812Sjmallett * ZIP_DBG_QUEX_STA = ZIP Queue Status Registers 668232812Sjmallett * 669232812Sjmallett * Description: 670232812Sjmallett * This register reflects status of the zip instruction queue. 671232812Sjmallett * This register is only for debug use. 672232812Sjmallett */ 673232812Sjmallettunion cvmx_zip_dbg_quex_sta { 674232812Sjmallett uint64_t u64; 675232812Sjmallett struct cvmx_zip_dbg_quex_sta_s { 676232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 677232812Sjmallett uint64_t busy : 1; /**< Queue State: 1 - Queue is busy; 0 - Queue is idle */ 678232812Sjmallett uint64_t reserved_52_62 : 11; 679232812Sjmallett uint64_t cdbc : 20; /**< Current DoorBell Counter */ 680232812Sjmallett uint64_t nii : 32; /**< Number of instructions issued from this queue. 681232812Sjmallett Reset to 0 when ZIP_QUEn_BUF is written. */ 682232812Sjmallett#else 683232812Sjmallett uint64_t nii : 32; 684232812Sjmallett uint64_t cdbc : 20; 685232812Sjmallett uint64_t reserved_52_62 : 11; 686232812Sjmallett uint64_t busy : 1; 687232812Sjmallett#endif 688232812Sjmallett } s; 689232812Sjmallett struct cvmx_zip_dbg_quex_sta_s cn68xx; 690232812Sjmallett struct cvmx_zip_dbg_quex_sta_s cn68xxp1; 691232812Sjmallett}; 692232812Sjmalletttypedef union cvmx_zip_dbg_quex_sta cvmx_zip_dbg_quex_sta_t; 693232812Sjmallett 694232812Sjmallett/** 695215976Sjmallett * cvmx_zip_debug0 696215976Sjmallett * 697232812Sjmallett * ZIP_DEBUG0 = ZIP DEBUG Register 698215976Sjmallett * 699232812Sjmallett * Description: 700215976Sjmallett */ 701232812Sjmallettunion cvmx_zip_debug0 { 702215976Sjmallett uint64_t u64; 703232812Sjmallett struct cvmx_zip_debug0_s { 704232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 705232812Sjmallett uint64_t reserved_30_63 : 34; 706232812Sjmallett uint64_t asserts : 30; /**< FIFO assertion checks */ 707215976Sjmallett#else 708232812Sjmallett uint64_t asserts : 30; 709232812Sjmallett uint64_t reserved_30_63 : 34; 710215976Sjmallett#endif 711215976Sjmallett } s; 712232812Sjmallett struct cvmx_zip_debug0_cn31xx { 713232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 714215976Sjmallett uint64_t reserved_14_63 : 50; 715215976Sjmallett uint64_t asserts : 14; /**< FIFO assertion checks */ 716215976Sjmallett#else 717215976Sjmallett uint64_t asserts : 14; 718215976Sjmallett uint64_t reserved_14_63 : 50; 719215976Sjmallett#endif 720215976Sjmallett } cn31xx; 721215976Sjmallett struct cvmx_zip_debug0_cn31xx cn38xx; 722215976Sjmallett struct cvmx_zip_debug0_cn31xx cn38xxp2; 723215976Sjmallett struct cvmx_zip_debug0_cn31xx cn56xx; 724215976Sjmallett struct cvmx_zip_debug0_cn31xx cn56xxp1; 725215976Sjmallett struct cvmx_zip_debug0_cn31xx cn58xx; 726215976Sjmallett struct cvmx_zip_debug0_cn31xx cn58xxp1; 727232812Sjmallett struct cvmx_zip_debug0_cn61xx { 728232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 729232812Sjmallett uint64_t reserved_17_63 : 47; 730232812Sjmallett uint64_t asserts : 17; /**< FIFO assertion checks */ 731232812Sjmallett#else 732232812Sjmallett uint64_t asserts : 17; 733232812Sjmallett uint64_t reserved_17_63 : 47; 734232812Sjmallett#endif 735232812Sjmallett } cn61xx; 736232812Sjmallett struct cvmx_zip_debug0_cn61xx cn63xx; 737232812Sjmallett struct cvmx_zip_debug0_cn61xx cn63xxp1; 738232812Sjmallett struct cvmx_zip_debug0_cn61xx cn66xx; 739232812Sjmallett struct cvmx_zip_debug0_s cn68xx; 740232812Sjmallett struct cvmx_zip_debug0_s cn68xxp1; 741215976Sjmallett}; 742215976Sjmalletttypedef union cvmx_zip_debug0 cvmx_zip_debug0_t; 743215976Sjmallett 744215976Sjmallett/** 745232812Sjmallett * cvmx_zip_ecc_ctl 746232812Sjmallett * 747232812Sjmallett * ZIP_ECC_CTL = ZIP ECC Control Register 748232812Sjmallett * 749232812Sjmallett * Description: 750232812Sjmallett * This register enables ECC for each individual internal memory that requires ECC. For debug purpose, it can also 751232812Sjmallett * control 1 or 2 bits be flipped in the ECC data. 752232812Sjmallett */ 753232812Sjmallettunion cvmx_zip_ecc_ctl { 754232812Sjmallett uint64_t u64; 755232812Sjmallett struct cvmx_zip_ecc_ctl_s { 756232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 757232812Sjmallett uint64_t reserved_34_63 : 30; 758232812Sjmallett uint64_t ibge : 2; /**< controls instruction buffer flip syndrome 759232812Sjmallett 2'b00 : No Error Generation 760232812Sjmallett 2'b10, 2'b01: Flip 1 bit 761232812Sjmallett 2'b11 : Flip 2 bits */ 762232812Sjmallett uint64_t reserved_1_31 : 31; 763232812Sjmallett uint64_t iben : 1; /**< 1: ECC Enabled for instruction buffer 764232812Sjmallett - 0: ECC Disabled for instruction buffer */ 765232812Sjmallett#else 766232812Sjmallett uint64_t iben : 1; 767232812Sjmallett uint64_t reserved_1_31 : 31; 768232812Sjmallett uint64_t ibge : 2; 769232812Sjmallett uint64_t reserved_34_63 : 30; 770232812Sjmallett#endif 771232812Sjmallett } s; 772232812Sjmallett struct cvmx_zip_ecc_ctl_s cn68xx; 773232812Sjmallett struct cvmx_zip_ecc_ctl_s cn68xxp1; 774232812Sjmallett}; 775232812Sjmalletttypedef union cvmx_zip_ecc_ctl cvmx_zip_ecc_ctl_t; 776232812Sjmallett 777232812Sjmallett/** 778215976Sjmallett * cvmx_zip_error 779215976Sjmallett * 780232812Sjmallett * ZIP_ERROR = ZIP ERROR Register 781215976Sjmallett * 782232812Sjmallett * Description: 783232812Sjmallett * This register is an alias to ZIP_INT_REG[DOORBELL0]. 784232812Sjmallett * The purpose of this register is for software backward compatibility. 785215976Sjmallett */ 786232812Sjmallettunion cvmx_zip_error { 787215976Sjmallett uint64_t u64; 788232812Sjmallett struct cvmx_zip_error_s { 789232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 790215976Sjmallett uint64_t reserved_1_63 : 63; 791215976Sjmallett uint64_t doorbell : 1; /**< A doorbell count has overflowed */ 792215976Sjmallett#else 793215976Sjmallett uint64_t doorbell : 1; 794215976Sjmallett uint64_t reserved_1_63 : 63; 795215976Sjmallett#endif 796215976Sjmallett } s; 797215976Sjmallett struct cvmx_zip_error_s cn31xx; 798215976Sjmallett struct cvmx_zip_error_s cn38xx; 799215976Sjmallett struct cvmx_zip_error_s cn38xxp2; 800215976Sjmallett struct cvmx_zip_error_s cn56xx; 801215976Sjmallett struct cvmx_zip_error_s cn56xxp1; 802215976Sjmallett struct cvmx_zip_error_s cn58xx; 803215976Sjmallett struct cvmx_zip_error_s cn58xxp1; 804232812Sjmallett struct cvmx_zip_error_s cn61xx; 805215976Sjmallett struct cvmx_zip_error_s cn63xx; 806215976Sjmallett struct cvmx_zip_error_s cn63xxp1; 807232812Sjmallett struct cvmx_zip_error_s cn66xx; 808232812Sjmallett struct cvmx_zip_error_s cn68xx; 809232812Sjmallett struct cvmx_zip_error_s cn68xxp1; 810215976Sjmallett}; 811215976Sjmalletttypedef union cvmx_zip_error cvmx_zip_error_t; 812215976Sjmallett 813215976Sjmallett/** 814232812Sjmallett * cvmx_zip_int_ena 815232812Sjmallett * 816232812Sjmallett * ZIP_INT_ENA = ZIP Interrupt Enable Register 817232812Sjmallett * 818232812Sjmallett * Description: 819232812Sjmallett * Only when an interrupt source is enabled, an interrupt can be fired. 820232812Sjmallett * When a bit is set to 1, the corresponding interrupt is enabled. 821232812Sjmallett */ 822232812Sjmallettunion cvmx_zip_int_ena { 823232812Sjmallett uint64_t u64; 824232812Sjmallett struct cvmx_zip_int_ena_s { 825232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 826232812Sjmallett uint64_t reserved_10_63 : 54; 827232812Sjmallett uint64_t doorbell1 : 1; /**< Enable for Doorbell 1 count overflow */ 828232812Sjmallett uint64_t doorbell0 : 1; /**< Enable for Doorbell 0 count overflow */ 829232812Sjmallett uint64_t reserved_3_7 : 5; 830232812Sjmallett uint64_t ibdbe : 1; /**< Enable for IBUF Double Bit Error */ 831232812Sjmallett uint64_t ibsbe : 1; /**< Enable for IBUF Single Bit Error */ 832232812Sjmallett uint64_t fife : 1; /**< Enable for FIFO errors */ 833232812Sjmallett#else 834232812Sjmallett uint64_t fife : 1; 835232812Sjmallett uint64_t ibsbe : 1; 836232812Sjmallett uint64_t ibdbe : 1; 837232812Sjmallett uint64_t reserved_3_7 : 5; 838232812Sjmallett uint64_t doorbell0 : 1; 839232812Sjmallett uint64_t doorbell1 : 1; 840232812Sjmallett uint64_t reserved_10_63 : 54; 841232812Sjmallett#endif 842232812Sjmallett } s; 843232812Sjmallett struct cvmx_zip_int_ena_s cn68xx; 844232812Sjmallett struct cvmx_zip_int_ena_s cn68xxp1; 845232812Sjmallett}; 846232812Sjmalletttypedef union cvmx_zip_int_ena cvmx_zip_int_ena_t; 847232812Sjmallett 848232812Sjmallett/** 849215976Sjmallett * cvmx_zip_int_mask 850215976Sjmallett * 851232812Sjmallett * ZIP_INT_MASK = ZIP Interrupt Mask Register 852232812Sjmallett * 853232812Sjmallett * Description: 854232812Sjmallett * This register is an alias to ZIP_INT_ENA[DOORBELL0]. 855232812Sjmallett * The purpose of this register is for software backward compatibility. 856215976Sjmallett */ 857232812Sjmallettunion cvmx_zip_int_mask { 858215976Sjmallett uint64_t u64; 859232812Sjmallett struct cvmx_zip_int_mask_s { 860232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 861215976Sjmallett uint64_t reserved_1_63 : 63; 862215976Sjmallett uint64_t doorbell : 1; /**< Bit mask corresponding to ZIP_ERROR[0] above */ 863215976Sjmallett#else 864215976Sjmallett uint64_t doorbell : 1; 865215976Sjmallett uint64_t reserved_1_63 : 63; 866215976Sjmallett#endif 867215976Sjmallett } s; 868215976Sjmallett struct cvmx_zip_int_mask_s cn31xx; 869215976Sjmallett struct cvmx_zip_int_mask_s cn38xx; 870215976Sjmallett struct cvmx_zip_int_mask_s cn38xxp2; 871215976Sjmallett struct cvmx_zip_int_mask_s cn56xx; 872215976Sjmallett struct cvmx_zip_int_mask_s cn56xxp1; 873215976Sjmallett struct cvmx_zip_int_mask_s cn58xx; 874215976Sjmallett struct cvmx_zip_int_mask_s cn58xxp1; 875232812Sjmallett struct cvmx_zip_int_mask_s cn61xx; 876215976Sjmallett struct cvmx_zip_int_mask_s cn63xx; 877215976Sjmallett struct cvmx_zip_int_mask_s cn63xxp1; 878232812Sjmallett struct cvmx_zip_int_mask_s cn66xx; 879232812Sjmallett struct cvmx_zip_int_mask_s cn68xx; 880232812Sjmallett struct cvmx_zip_int_mask_s cn68xxp1; 881215976Sjmallett}; 882215976Sjmalletttypedef union cvmx_zip_int_mask cvmx_zip_int_mask_t; 883215976Sjmallett 884215976Sjmallett/** 885232812Sjmallett * cvmx_zip_int_reg 886232812Sjmallett * 887232812Sjmallett * ZIP_INT_REG = ZIP Interrupt Status Register 888232812Sjmallett * 889232812Sjmallett * Description: 890232812Sjmallett * This registers contains the status of all the interrupt source. An interrupt will be generated only when 891232812Sjmallett * the corresponding interrupt source is enabled in ZIP_INT_ENA. 892232812Sjmallett */ 893232812Sjmallettunion cvmx_zip_int_reg { 894232812Sjmallett uint64_t u64; 895232812Sjmallett struct cvmx_zip_int_reg_s { 896232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 897232812Sjmallett uint64_t reserved_10_63 : 54; 898232812Sjmallett uint64_t doorbell1 : 1; /**< Doorbell 1 count has overflowed */ 899232812Sjmallett uint64_t doorbell0 : 1; /**< Doorbell 0 count has overflowed */ 900232812Sjmallett uint64_t reserved_3_7 : 5; 901232812Sjmallett uint64_t ibdbe : 1; /**< IBUF Double Bit Error */ 902232812Sjmallett uint64_t ibsbe : 1; /**< IBUF Single Bit Error */ 903232812Sjmallett uint64_t fife : 1; /**< FIFO errors and the detailed status is in 904232812Sjmallett ZIP_DEBUG0 */ 905232812Sjmallett#else 906232812Sjmallett uint64_t fife : 1; 907232812Sjmallett uint64_t ibsbe : 1; 908232812Sjmallett uint64_t ibdbe : 1; 909232812Sjmallett uint64_t reserved_3_7 : 5; 910232812Sjmallett uint64_t doorbell0 : 1; 911232812Sjmallett uint64_t doorbell1 : 1; 912232812Sjmallett uint64_t reserved_10_63 : 54; 913232812Sjmallett#endif 914232812Sjmallett } s; 915232812Sjmallett struct cvmx_zip_int_reg_s cn68xx; 916232812Sjmallett struct cvmx_zip_int_reg_s cn68xxp1; 917232812Sjmallett}; 918232812Sjmalletttypedef union cvmx_zip_int_reg cvmx_zip_int_reg_t; 919232812Sjmallett 920232812Sjmallett/** 921232812Sjmallett * cvmx_zip_que#_buf 922232812Sjmallett * 923232812Sjmallett * NOTE: Fields NEXEC and SYNCFLUSH_CAPABLE are only valid for chips after O68 2.0 (including O68 2.0). 924232812Sjmallett * 925232812Sjmallett * 926232812Sjmallett * ZIP_QUEX_BUF = ZIP Queue Buffer Parameter Registers 927232812Sjmallett * 928232812Sjmallett * Description: 929232812Sjmallett * These registers set the buffer parameters for the instruction queues . The size of the instruction buffer 930232812Sjmallett * segments is measured in uint64s. The pool specifies (1 of 8 free lists to be used when freeing command 931232812Sjmallett * buffer segments). The PTR field is overwritten with the next pointer each time that the command 932232812Sjmallett * buffer segment is exhausted. When quiescent (i.e. outstanding doorbell count is 0), it is safe 933232812Sjmallett * to rewrite this register to effectively reset the command buffer state machine. New commands 934232812Sjmallett * will then be read from the newly specified command buffer pointer. 935232812Sjmallett */ 936232812Sjmallettunion cvmx_zip_quex_buf { 937232812Sjmallett uint64_t u64; 938232812Sjmallett struct cvmx_zip_quex_buf_s { 939232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 940232812Sjmallett uint64_t reserved_58_63 : 6; 941232812Sjmallett uint64_t dwb : 9; /**< Number of DontWriteBacks */ 942232812Sjmallett uint64_t pool : 3; /**< Free list used to free command buffer segments */ 943232812Sjmallett uint64_t size : 13; /**< Number of uint64s per command buffer segment */ 944232812Sjmallett uint64_t ptr : 33; /**< Initial command buffer pointer[39:7] (128B-aligned) */ 945232812Sjmallett#else 946232812Sjmallett uint64_t ptr : 33; 947232812Sjmallett uint64_t size : 13; 948232812Sjmallett uint64_t pool : 3; 949232812Sjmallett uint64_t dwb : 9; 950232812Sjmallett uint64_t reserved_58_63 : 6; 951232812Sjmallett#endif 952232812Sjmallett } s; 953232812Sjmallett struct cvmx_zip_quex_buf_s cn68xx; 954232812Sjmallett struct cvmx_zip_quex_buf_s cn68xxp1; 955232812Sjmallett}; 956232812Sjmalletttypedef union cvmx_zip_quex_buf cvmx_zip_quex_buf_t; 957232812Sjmallett 958232812Sjmallett/** 959232812Sjmallett * cvmx_zip_que#_ecc_err_sta 960232812Sjmallett * 961232812Sjmallett * ZIP_QUEX_ECC_ERR_STA = ZIP Queue ECC ERROR STATUS Register 962232812Sjmallett * 963232812Sjmallett * Description: 964232812Sjmallett * This register contains the first ECC SBE/DBE status for the instruction buffer of a given zip instruction queue. 965232812Sjmallett */ 966232812Sjmallettunion cvmx_zip_quex_ecc_err_sta { 967232812Sjmallett uint64_t u64; 968232812Sjmallett struct cvmx_zip_quex_ecc_err_sta_s { 969232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 970232812Sjmallett uint64_t reserved_35_63 : 29; 971232812Sjmallett uint64_t wnum : 3; /**< Index of the first IWORD that DBE happened 972232812Sjmallett (Valid when ZIP_INT_REG[IBDBE] or [IBSBE] is set). */ 973232812Sjmallett uint64_t inum : 32; /**< Index of the first instruction that DBE happened 974232812Sjmallett (Valid when ZIP_INT_REG[IBDBE] or [IBSBE] is set). */ 975232812Sjmallett#else 976232812Sjmallett uint64_t inum : 32; 977232812Sjmallett uint64_t wnum : 3; 978232812Sjmallett uint64_t reserved_35_63 : 29; 979232812Sjmallett#endif 980232812Sjmallett } s; 981232812Sjmallett struct cvmx_zip_quex_ecc_err_sta_s cn68xx; 982232812Sjmallett struct cvmx_zip_quex_ecc_err_sta_s cn68xxp1; 983232812Sjmallett}; 984232812Sjmalletttypedef union cvmx_zip_quex_ecc_err_sta cvmx_zip_quex_ecc_err_sta_t; 985232812Sjmallett 986232812Sjmallett/** 987232812Sjmallett * cvmx_zip_que#_map 988232812Sjmallett * 989232812Sjmallett * ZIP_QUEX_MAP = ZIP Queue Mapping Registers 990232812Sjmallett * 991232812Sjmallett * Description: 992232812Sjmallett * These registers control how each instruction queue maps to 2 zip cores. 993232812Sjmallett * Bit[0] corresponds to zip core 0 and bit[1] corresponds to zip core 1. 994232812Sjmallett * A "1" means instructions from the queue can be served by the corresponding zip core. 995232812Sjmallett */ 996232812Sjmallettunion cvmx_zip_quex_map { 997232812Sjmallett uint64_t u64; 998232812Sjmallett struct cvmx_zip_quex_map_s { 999232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1000232812Sjmallett uint64_t reserved_2_63 : 62; 1001232812Sjmallett uint64_t zce : 2; /**< Zip Core Enable 1002232812Sjmallett Controls the logical instruction queue can be 1003232812Sjmallett serviced by which zip core. Setting ZCE==0 1004232812Sjmallett effectively disables the queue from being served 1005232812Sjmallett (however the instruction can still be fetched). 1006232812Sjmallett ZCE[1]=1, zip core 1 can serve the queue. 1007232812Sjmallett ZCE[0]=1, zip core 0 can serve the queue. */ 1008232812Sjmallett#else 1009232812Sjmallett uint64_t zce : 2; 1010232812Sjmallett uint64_t reserved_2_63 : 62; 1011232812Sjmallett#endif 1012232812Sjmallett } s; 1013232812Sjmallett struct cvmx_zip_quex_map_s cn68xx; 1014232812Sjmallett struct cvmx_zip_quex_map_s cn68xxp1; 1015232812Sjmallett}; 1016232812Sjmalletttypedef union cvmx_zip_quex_map cvmx_zip_quex_map_t; 1017232812Sjmallett 1018232812Sjmallett/** 1019232812Sjmallett * cvmx_zip_que_ena 1020232812Sjmallett * 1021232812Sjmallett * ZIP_QUE_ENA = ZIP Queue Enable Register 1022232812Sjmallett * 1023232812Sjmallett * Description: 1024232812Sjmallett * If a queue is disabled, ZIP_CTL will stop fetching instructions from the queue. 1025232812Sjmallett */ 1026232812Sjmallettunion cvmx_zip_que_ena { 1027232812Sjmallett uint64_t u64; 1028232812Sjmallett struct cvmx_zip_que_ena_s { 1029232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1030232812Sjmallett uint64_t reserved_2_63 : 62; 1031232812Sjmallett uint64_t ena : 2; /**< Enables the logical instruction queues. 1032232812Sjmallett - 1: Queue is enabled. 0: Queue is disabled 1033232812Sjmallett ENA[1]=1 enables queue 1 1034232812Sjmallett ENA[0]=1 enables queue 0 */ 1035232812Sjmallett#else 1036232812Sjmallett uint64_t ena : 2; 1037232812Sjmallett uint64_t reserved_2_63 : 62; 1038232812Sjmallett#endif 1039232812Sjmallett } s; 1040232812Sjmallett struct cvmx_zip_que_ena_s cn68xx; 1041232812Sjmallett struct cvmx_zip_que_ena_s cn68xxp1; 1042232812Sjmallett}; 1043232812Sjmalletttypedef union cvmx_zip_que_ena cvmx_zip_que_ena_t; 1044232812Sjmallett 1045232812Sjmallett/** 1046232812Sjmallett * cvmx_zip_que_pri 1047232812Sjmallett * 1048232812Sjmallett * ZIP_QUE_PRI = ZIP Queue Priority Register 1049232812Sjmallett * 1050232812Sjmallett * Description: 1051232812Sjmallett * This registers defines the priority between instruction queue 1 and instruction queue 0. 1052232812Sjmallett * Bit[0] corresponds to queue 0 and bit[1] corresponds to queue 1. A "1" means high priority. 1053232812Sjmallett */ 1054232812Sjmallettunion cvmx_zip_que_pri { 1055232812Sjmallett uint64_t u64; 1056232812Sjmallett struct cvmx_zip_que_pri_s { 1057232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1058232812Sjmallett uint64_t reserved_2_63 : 62; 1059232812Sjmallett uint64_t pri : 2; /**< Priority 1060232812Sjmallett 2'b10: Queue 1 has higher priority. 1061232812Sjmallett 2'b01: Queue 0 has higher priority. 1062232812Sjmallett 2'b11,2'b00: round robin */ 1063232812Sjmallett#else 1064232812Sjmallett uint64_t pri : 2; 1065232812Sjmallett uint64_t reserved_2_63 : 62; 1066232812Sjmallett#endif 1067232812Sjmallett } s; 1068232812Sjmallett struct cvmx_zip_que_pri_s cn68xx; 1069232812Sjmallett struct cvmx_zip_que_pri_s cn68xxp1; 1070232812Sjmallett}; 1071232812Sjmalletttypedef union cvmx_zip_que_pri cvmx_zip_que_pri_t; 1072232812Sjmallett 1073232812Sjmallett/** 1074215976Sjmallett * cvmx_zip_throttle 1075215976Sjmallett * 1076232812Sjmallett * ZIP_THROTTLE = ZIP Throttle Register 1077232812Sjmallett * 1078232812Sjmallett * Description: 1079232812Sjmallett * This register controls the maximum number of in-flight X2I data fetch transactions. Values > 16 are illegal. 1080232812Sjmallett * Writing 0 to this register causes the ZIP module to temporarily suspend NCB accesses; it is not recommended 1081232812Sjmallett * for normal operation, but may be useful for diagnostics. 1082215976Sjmallett */ 1083232812Sjmallettunion cvmx_zip_throttle { 1084215976Sjmallett uint64_t u64; 1085232812Sjmallett struct cvmx_zip_throttle_s { 1086232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1087232812Sjmallett uint64_t reserved_5_63 : 59; 1088232812Sjmallett uint64_t max_infl : 5; /**< Maximum number of in-flight data fetch transactions on 1089232812Sjmallett NCB. */ 1090232812Sjmallett#else 1091232812Sjmallett uint64_t max_infl : 5; 1092232812Sjmallett uint64_t reserved_5_63 : 59; 1093232812Sjmallett#endif 1094232812Sjmallett } s; 1095232812Sjmallett struct cvmx_zip_throttle_cn61xx { 1096232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1097215976Sjmallett uint64_t reserved_4_63 : 60; 1098232812Sjmallett uint64_t max_infl : 4; /**< Maximum number of inflight data fetch transactions 1099232812Sjmallett on NCB. */ 1100215976Sjmallett#else 1101215976Sjmallett uint64_t max_infl : 4; 1102215976Sjmallett uint64_t reserved_4_63 : 60; 1103215976Sjmallett#endif 1104232812Sjmallett } cn61xx; 1105232812Sjmallett struct cvmx_zip_throttle_cn61xx cn63xx; 1106232812Sjmallett struct cvmx_zip_throttle_cn61xx cn63xxp1; 1107232812Sjmallett struct cvmx_zip_throttle_cn61xx cn66xx; 1108232812Sjmallett struct cvmx_zip_throttle_s cn68xx; 1109232812Sjmallett struct cvmx_zip_throttle_s cn68xxp1; 1110215976Sjmallett}; 1111215976Sjmalletttypedef union cvmx_zip_throttle cvmx_zip_throttle_t; 1112215976Sjmallett 1113215976Sjmallett#endif 1114