1232809Sjmallett/***********************license start***************
2232809Sjmallett * Copyright (c) 2003-2012  Cavium Inc. (support@cavium.com). All rights
3232809Sjmallett * reserved.
4232809Sjmallett *
5232809Sjmallett *
6232809Sjmallett * Redistribution and use in source and binary forms, with or without
7232809Sjmallett * modification, are permitted provided that the following conditions are
8232809Sjmallett * met:
9232809Sjmallett *
10232809Sjmallett *   * Redistributions of source code must retain the above copyright
11232809Sjmallett *     notice, this list of conditions and the following disclaimer.
12232809Sjmallett *
13232809Sjmallett *   * Redistributions in binary form must reproduce the above
14232809Sjmallett *     copyright notice, this list of conditions and the following
15232809Sjmallett *     disclaimer in the documentation and/or other materials provided
16232809Sjmallett *     with the distribution.
17232809Sjmallett
18232809Sjmallett *   * Neither the name of Cavium Inc. nor the names of
19232809Sjmallett *     its contributors may be used to endorse or promote products
20232809Sjmallett *     derived from this software without specific prior written
21232809Sjmallett *     permission.
22232809Sjmallett
23232809Sjmallett * This Software, including technical data, may be subject to U.S. export  control
24232809Sjmallett * laws, including the U.S. Export Administration Act and its  associated
25232809Sjmallett * regulations, and may be subject to export or import  regulations in other
26232809Sjmallett * countries.
27232809Sjmallett
28232809Sjmallett * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29232809Sjmallett * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR
30232809Sjmallett * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31232809Sjmallett * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32232809Sjmallett * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33232809Sjmallett * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34232809Sjmallett * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35232809Sjmallett * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36232809Sjmallett * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE  RISK ARISING OUT OF USE OR
37232809Sjmallett * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38232809Sjmallett ***********************license end**************************************/
39232809Sjmallett
40232809Sjmallett
41232809Sjmallett/**
42232809Sjmallett * cvmx-iob1-defs.h
43232809Sjmallett *
44232809Sjmallett * Configuration and status register (CSR) type definitions for
45232809Sjmallett * Octeon iob1.
46232809Sjmallett *
47232809Sjmallett * This file is auto generated. Do not edit.
48232809Sjmallett *
49232809Sjmallett * <hr>$Revision$<hr>
50232809Sjmallett *
51232809Sjmallett */
52232809Sjmallett#ifndef __CVMX_IOB1_DEFS_H__
53232809Sjmallett#define __CVMX_IOB1_DEFS_H__
54232809Sjmallett
55232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
56232809Sjmallett#define CVMX_IOB1_BIST_STATUS CVMX_IOB1_BIST_STATUS_FUNC()
57232809Sjmallettstatic inline uint64_t CVMX_IOB1_BIST_STATUS_FUNC(void)
58232809Sjmallett{
59232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
60232809Sjmallett		cvmx_warn("CVMX_IOB1_BIST_STATUS not supported on this chip\n");
61232809Sjmallett	return CVMX_ADD_IO_SEG(0x00011800F00107F8ull);
62232809Sjmallett}
63232809Sjmallett#else
64232809Sjmallett#define CVMX_IOB1_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800F00107F8ull))
65232809Sjmallett#endif
66232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
67232809Sjmallett#define CVMX_IOB1_CTL_STATUS CVMX_IOB1_CTL_STATUS_FUNC()
68232809Sjmallettstatic inline uint64_t CVMX_IOB1_CTL_STATUS_FUNC(void)
69232809Sjmallett{
70232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
71232809Sjmallett		cvmx_warn("CVMX_IOB1_CTL_STATUS not supported on this chip\n");
72232809Sjmallett	return CVMX_ADD_IO_SEG(0x00011800F0010050ull);
73232809Sjmallett}
74232809Sjmallett#else
75232809Sjmallett#define CVMX_IOB1_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011800F0010050ull))
76232809Sjmallett#endif
77232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
78232809Sjmallett#define CVMX_IOB1_TO_CMB_CREDITS CVMX_IOB1_TO_CMB_CREDITS_FUNC()
79232809Sjmallettstatic inline uint64_t CVMX_IOB1_TO_CMB_CREDITS_FUNC(void)
80232809Sjmallett{
81232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
82232809Sjmallett		cvmx_warn("CVMX_IOB1_TO_CMB_CREDITS not supported on this chip\n");
83232809Sjmallett	return CVMX_ADD_IO_SEG(0x00011800F00100B0ull);
84232809Sjmallett}
85232809Sjmallett#else
86232809Sjmallett#define CVMX_IOB1_TO_CMB_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00100B0ull))
87232809Sjmallett#endif
88232809Sjmallett
89232809Sjmallett/**
90232809Sjmallett * cvmx_iob1_bist_status
91232809Sjmallett *
92232809Sjmallett * IOB_BIST_STATUS = BIST Status of IOB Memories
93232809Sjmallett *
94232809Sjmallett * The result of the BIST run on the IOB memories.
95232809Sjmallett */
96232809Sjmallettunion cvmx_iob1_bist_status {
97232809Sjmallett	uint64_t u64;
98232809Sjmallett	struct cvmx_iob1_bist_status_s {
99232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
100232809Sjmallett	uint64_t reserved_9_63                : 55;
101232809Sjmallett	uint64_t xmdfif                       : 1;  /**< xmdfif_bist_status */
102232809Sjmallett	uint64_t xmcfif                       : 1;  /**< xmcfif_bist_status */
103232809Sjmallett	uint64_t iorfif                       : 1;  /**< iorfif_bist_status */
104232809Sjmallett	uint64_t rsdfif                       : 1;  /**< rsdfif_bist_status */
105232809Sjmallett	uint64_t iocfif                       : 1;  /**< iocfif_bist_status */
106232809Sjmallett	uint64_t reserved_2_3                 : 2;
107232809Sjmallett	uint64_t icrp0                        : 1;  /**< icr_pko_bist_mem0_status */
108232809Sjmallett	uint64_t icrp1                        : 1;  /**< icr_pko_bist_mem1_status */
109232809Sjmallett#else
110232809Sjmallett	uint64_t icrp1                        : 1;
111232809Sjmallett	uint64_t icrp0                        : 1;
112232809Sjmallett	uint64_t reserved_2_3                 : 2;
113232809Sjmallett	uint64_t iocfif                       : 1;
114232809Sjmallett	uint64_t rsdfif                       : 1;
115232809Sjmallett	uint64_t iorfif                       : 1;
116232809Sjmallett	uint64_t xmcfif                       : 1;
117232809Sjmallett	uint64_t xmdfif                       : 1;
118232809Sjmallett	uint64_t reserved_9_63                : 55;
119232809Sjmallett#endif
120232809Sjmallett	} s;
121232809Sjmallett	struct cvmx_iob1_bist_status_s        cn68xx;
122232809Sjmallett	struct cvmx_iob1_bist_status_s        cn68xxp1;
123232809Sjmallett};
124232809Sjmalletttypedef union cvmx_iob1_bist_status cvmx_iob1_bist_status_t;
125232809Sjmallett
126232809Sjmallett/**
127232809Sjmallett * cvmx_iob1_ctl_status
128232809Sjmallett *
129232809Sjmallett * IOB Control Status = IOB Control and Status Register
130232809Sjmallett *
131232809Sjmallett * Provides control for IOB functions.
132232809Sjmallett */
133232809Sjmallettunion cvmx_iob1_ctl_status {
134232809Sjmallett	uint64_t u64;
135232809Sjmallett	struct cvmx_iob1_ctl_status_s {
136232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
137232809Sjmallett	uint64_t reserved_11_63               : 53;
138232809Sjmallett	uint64_t fif_dly                      : 1;  /**< Delay async FIFO counts to be used when clock ratio
139232809Sjmallett                                                         is greater then 3:1. Writes should be followed by an
140232809Sjmallett                                                         immediate read. */
141232809Sjmallett	uint64_t xmc_per                      : 4;  /**< IBC XMC PUSH EARLY */
142232809Sjmallett	uint64_t reserved_0_5                 : 6;
143232809Sjmallett#else
144232809Sjmallett	uint64_t reserved_0_5                 : 6;
145232809Sjmallett	uint64_t xmc_per                      : 4;
146232809Sjmallett	uint64_t fif_dly                      : 1;
147232809Sjmallett	uint64_t reserved_11_63               : 53;
148232809Sjmallett#endif
149232809Sjmallett	} s;
150232809Sjmallett	struct cvmx_iob1_ctl_status_s         cn68xx;
151232809Sjmallett	struct cvmx_iob1_ctl_status_s         cn68xxp1;
152232809Sjmallett};
153232809Sjmalletttypedef union cvmx_iob1_ctl_status cvmx_iob1_ctl_status_t;
154232809Sjmallett
155232809Sjmallett/**
156232809Sjmallett * cvmx_iob1_to_cmb_credits
157232809Sjmallett *
158232809Sjmallett * IOB_TO_CMB_CREDITS = IOB To CMB Credits
159232809Sjmallett *
160232809Sjmallett * Controls the number of reads and writes that may be outstanding to the L2C (via the CMB).
161232809Sjmallett */
162232809Sjmallettunion cvmx_iob1_to_cmb_credits {
163232809Sjmallett	uint64_t u64;
164232809Sjmallett	struct cvmx_iob1_to_cmb_credits_s {
165232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
166232809Sjmallett	uint64_t reserved_10_63               : 54;
167232809Sjmallett	uint64_t pko_rd                       : 4;  /**< Number of PKO reads that can be out to L2C where
168232809Sjmallett                                                         0 == 16-credits. */
169232809Sjmallett	uint64_t reserved_3_5                 : 3;
170232809Sjmallett	uint64_t ncb_wr                       : 3;  /**< Number of NCB/PKI writes that can be out to L2C
171232809Sjmallett                                                         where 0 == 8-credits. */
172232809Sjmallett#else
173232809Sjmallett	uint64_t ncb_wr                       : 3;
174232809Sjmallett	uint64_t reserved_3_5                 : 3;
175232809Sjmallett	uint64_t pko_rd                       : 4;
176232809Sjmallett	uint64_t reserved_10_63               : 54;
177232809Sjmallett#endif
178232809Sjmallett	} s;
179232809Sjmallett	struct cvmx_iob1_to_cmb_credits_s     cn68xx;
180232809Sjmallett	struct cvmx_iob1_to_cmb_credits_s     cn68xxp1;
181232809Sjmallett};
182232809Sjmalletttypedef union cvmx_iob1_to_cmb_credits cvmx_iob1_to_cmb_credits_t;
183232809Sjmallett
184232809Sjmallett#endif
185