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-eoi-defs.h
43232809Sjmallett *
44232809Sjmallett * Configuration and status register (CSR) type definitions for
45232809Sjmallett * Octeon eoi.
46232809Sjmallett *
47232809Sjmallett * This file is auto generated. Do not edit.
48232809Sjmallett *
49232809Sjmallett * <hr>$Revision: 69515 $<hr>
50232809Sjmallett *
51232809Sjmallett */
52232809Sjmallett#ifndef __CVMX_EOI_DEFS_H__
53232809Sjmallett#define __CVMX_EOI_DEFS_H__
54232809Sjmallett
55232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
56232809Sjmallett#define CVMX_EOI_BIST_CTL_STA CVMX_EOI_BIST_CTL_STA_FUNC()
57232809Sjmallettstatic inline uint64_t CVMX_EOI_BIST_CTL_STA_FUNC(void)
58232809Sjmallett{
59232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
60232809Sjmallett		cvmx_warn("CVMX_EOI_BIST_CTL_STA not supported on this chip\n");
61232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000118ull);
62232809Sjmallett}
63232809Sjmallett#else
64232809Sjmallett#define CVMX_EOI_BIST_CTL_STA (CVMX_ADD_IO_SEG(0x0001180013000118ull))
65232809Sjmallett#endif
66232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
67232809Sjmallett#define CVMX_EOI_CTL_STA CVMX_EOI_CTL_STA_FUNC()
68232809Sjmallettstatic inline uint64_t CVMX_EOI_CTL_STA_FUNC(void)
69232809Sjmallett{
70232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
71232809Sjmallett		cvmx_warn("CVMX_EOI_CTL_STA not supported on this chip\n");
72232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000000ull);
73232809Sjmallett}
74232809Sjmallett#else
75232809Sjmallett#define CVMX_EOI_CTL_STA (CVMX_ADD_IO_SEG(0x0001180013000000ull))
76232809Sjmallett#endif
77232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
78232809Sjmallett#define CVMX_EOI_DEF_STA0 CVMX_EOI_DEF_STA0_FUNC()
79232809Sjmallettstatic inline uint64_t CVMX_EOI_DEF_STA0_FUNC(void)
80232809Sjmallett{
81232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
82232809Sjmallett		cvmx_warn("CVMX_EOI_DEF_STA0 not supported on this chip\n");
83232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000020ull);
84232809Sjmallett}
85232809Sjmallett#else
86232809Sjmallett#define CVMX_EOI_DEF_STA0 (CVMX_ADD_IO_SEG(0x0001180013000020ull))
87232809Sjmallett#endif
88232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
89232809Sjmallett#define CVMX_EOI_DEF_STA1 CVMX_EOI_DEF_STA1_FUNC()
90232809Sjmallettstatic inline uint64_t CVMX_EOI_DEF_STA1_FUNC(void)
91232809Sjmallett{
92232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
93232809Sjmallett		cvmx_warn("CVMX_EOI_DEF_STA1 not supported on this chip\n");
94232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000028ull);
95232809Sjmallett}
96232809Sjmallett#else
97232809Sjmallett#define CVMX_EOI_DEF_STA1 (CVMX_ADD_IO_SEG(0x0001180013000028ull))
98232809Sjmallett#endif
99232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
100232809Sjmallett#define CVMX_EOI_DEF_STA2 CVMX_EOI_DEF_STA2_FUNC()
101232809Sjmallettstatic inline uint64_t CVMX_EOI_DEF_STA2_FUNC(void)
102232809Sjmallett{
103232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
104232809Sjmallett		cvmx_warn("CVMX_EOI_DEF_STA2 not supported on this chip\n");
105232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000030ull);
106232809Sjmallett}
107232809Sjmallett#else
108232809Sjmallett#define CVMX_EOI_DEF_STA2 (CVMX_ADD_IO_SEG(0x0001180013000030ull))
109232809Sjmallett#endif
110232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
111232809Sjmallett#define CVMX_EOI_ECC_CTL CVMX_EOI_ECC_CTL_FUNC()
112232809Sjmallettstatic inline uint64_t CVMX_EOI_ECC_CTL_FUNC(void)
113232809Sjmallett{
114232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
115232809Sjmallett		cvmx_warn("CVMX_EOI_ECC_CTL not supported on this chip\n");
116232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000110ull);
117232809Sjmallett}
118232809Sjmallett#else
119232809Sjmallett#define CVMX_EOI_ECC_CTL (CVMX_ADD_IO_SEG(0x0001180013000110ull))
120232809Sjmallett#endif
121232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
122232809Sjmallett#define CVMX_EOI_ENDOR_BISTR_CTL_STA CVMX_EOI_ENDOR_BISTR_CTL_STA_FUNC()
123232809Sjmallettstatic inline uint64_t CVMX_EOI_ENDOR_BISTR_CTL_STA_FUNC(void)
124232809Sjmallett{
125232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
126232809Sjmallett		cvmx_warn("CVMX_EOI_ENDOR_BISTR_CTL_STA not supported on this chip\n");
127232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000120ull);
128232809Sjmallett}
129232809Sjmallett#else
130232809Sjmallett#define CVMX_EOI_ENDOR_BISTR_CTL_STA (CVMX_ADD_IO_SEG(0x0001180013000120ull))
131232809Sjmallett#endif
132232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
133232809Sjmallett#define CVMX_EOI_ENDOR_CLK_CTL CVMX_EOI_ENDOR_CLK_CTL_FUNC()
134232809Sjmallettstatic inline uint64_t CVMX_EOI_ENDOR_CLK_CTL_FUNC(void)
135232809Sjmallett{
136232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
137232809Sjmallett		cvmx_warn("CVMX_EOI_ENDOR_CLK_CTL not supported on this chip\n");
138232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000038ull);
139232809Sjmallett}
140232809Sjmallett#else
141232809Sjmallett#define CVMX_EOI_ENDOR_CLK_CTL (CVMX_ADD_IO_SEG(0x0001180013000038ull))
142232809Sjmallett#endif
143232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
144232809Sjmallett#define CVMX_EOI_ENDOR_CTL CVMX_EOI_ENDOR_CTL_FUNC()
145232809Sjmallettstatic inline uint64_t CVMX_EOI_ENDOR_CTL_FUNC(void)
146232809Sjmallett{
147232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
148232809Sjmallett		cvmx_warn("CVMX_EOI_ENDOR_CTL not supported on this chip\n");
149232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000100ull);
150232809Sjmallett}
151232809Sjmallett#else
152232809Sjmallett#define CVMX_EOI_ENDOR_CTL (CVMX_ADD_IO_SEG(0x0001180013000100ull))
153232809Sjmallett#endif
154232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
155232809Sjmallett#define CVMX_EOI_INT_ENA CVMX_EOI_INT_ENA_FUNC()
156232809Sjmallettstatic inline uint64_t CVMX_EOI_INT_ENA_FUNC(void)
157232809Sjmallett{
158232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
159232809Sjmallett		cvmx_warn("CVMX_EOI_INT_ENA not supported on this chip\n");
160232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000010ull);
161232809Sjmallett}
162232809Sjmallett#else
163232809Sjmallett#define CVMX_EOI_INT_ENA (CVMX_ADD_IO_SEG(0x0001180013000010ull))
164232809Sjmallett#endif
165232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
166232809Sjmallett#define CVMX_EOI_INT_STA CVMX_EOI_INT_STA_FUNC()
167232809Sjmallettstatic inline uint64_t CVMX_EOI_INT_STA_FUNC(void)
168232809Sjmallett{
169232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
170232809Sjmallett		cvmx_warn("CVMX_EOI_INT_STA not supported on this chip\n");
171232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000008ull);
172232809Sjmallett}
173232809Sjmallett#else
174232809Sjmallett#define CVMX_EOI_INT_STA (CVMX_ADD_IO_SEG(0x0001180013000008ull))
175232809Sjmallett#endif
176232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
177232809Sjmallett#define CVMX_EOI_IO_DRV CVMX_EOI_IO_DRV_FUNC()
178232809Sjmallettstatic inline uint64_t CVMX_EOI_IO_DRV_FUNC(void)
179232809Sjmallett{
180232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
181232809Sjmallett		cvmx_warn("CVMX_EOI_IO_DRV not supported on this chip\n");
182232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000018ull);
183232809Sjmallett}
184232809Sjmallett#else
185232809Sjmallett#define CVMX_EOI_IO_DRV (CVMX_ADD_IO_SEG(0x0001180013000018ull))
186232809Sjmallett#endif
187232809Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING
188232809Sjmallett#define CVMX_EOI_THROTTLE_CTL CVMX_EOI_THROTTLE_CTL_FUNC()
189232809Sjmallettstatic inline uint64_t CVMX_EOI_THROTTLE_CTL_FUNC(void)
190232809Sjmallett{
191232809Sjmallett	if (!(OCTEON_IS_MODEL(OCTEON_CNF71XX)))
192232809Sjmallett		cvmx_warn("CVMX_EOI_THROTTLE_CTL not supported on this chip\n");
193232809Sjmallett	return CVMX_ADD_IO_SEG(0x0001180013000108ull);
194232809Sjmallett}
195232809Sjmallett#else
196232809Sjmallett#define CVMX_EOI_THROTTLE_CTL (CVMX_ADD_IO_SEG(0x0001180013000108ull))
197232809Sjmallett#endif
198232809Sjmallett
199232809Sjmallett/**
200232809Sjmallett * cvmx_eoi_bist_ctl_sta
201232809Sjmallett *
202232809Sjmallett * EOI_BIST_CTL_STA =  EOI BIST Status Register
203232809Sjmallett *
204232809Sjmallett * Description:
205232809Sjmallett *   This register control EOI memory BIST and contains the bist result of EOI memories.
206232809Sjmallett */
207232809Sjmallettunion cvmx_eoi_bist_ctl_sta {
208232809Sjmallett	uint64_t u64;
209232809Sjmallett	struct cvmx_eoi_bist_ctl_sta_s {
210232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
211232809Sjmallett	uint64_t reserved_18_63               : 46;
212232809Sjmallett	uint64_t clear_bist                   : 1;  /**< Clear BIST on the HCLK memories */
213232809Sjmallett	uint64_t start_bist                   : 1;  /**< Starts BIST on the HCLK memories during 0-to-1
214232809Sjmallett                                                         transition. */
215232809Sjmallett	uint64_t reserved_3_15                : 13;
216232809Sjmallett	uint64_t stdf                         : 1;  /**< STDF Bist Status. */
217232809Sjmallett	uint64_t ppaf                         : 1;  /**< PPAF Bist Status. */
218232809Sjmallett	uint64_t lddf                         : 1;  /**< LDDF Bist Status. */
219232809Sjmallett#else
220232809Sjmallett	uint64_t lddf                         : 1;
221232809Sjmallett	uint64_t ppaf                         : 1;
222232809Sjmallett	uint64_t stdf                         : 1;
223232809Sjmallett	uint64_t reserved_3_15                : 13;
224232809Sjmallett	uint64_t start_bist                   : 1;
225232809Sjmallett	uint64_t clear_bist                   : 1;
226232809Sjmallett	uint64_t reserved_18_63               : 46;
227232809Sjmallett#endif
228232809Sjmallett	} s;
229232809Sjmallett	struct cvmx_eoi_bist_ctl_sta_s        cnf71xx;
230232809Sjmallett};
231232809Sjmalletttypedef union cvmx_eoi_bist_ctl_sta cvmx_eoi_bist_ctl_sta_t;
232232809Sjmallett
233232809Sjmallett/**
234232809Sjmallett * cvmx_eoi_ctl_sta
235232809Sjmallett *
236232809Sjmallett * EOI_CTL_STA = EOI Configure Control Reigster
237232809Sjmallett * This register configures EOI.
238232809Sjmallett */
239232809Sjmallettunion cvmx_eoi_ctl_sta {
240232809Sjmallett	uint64_t u64;
241232809Sjmallett	struct cvmx_eoi_ctl_sta_s {
242232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
243232809Sjmallett	uint64_t reserved_13_63               : 51;
244232809Sjmallett	uint64_t ppaf_wm                      : 5;  /**< Number of entries when PP Access FIFO will assert
245232809Sjmallett                                                         full (back pressure) */
246232809Sjmallett	uint64_t reserved_5_7                 : 3;
247232809Sjmallett	uint64_t busy                         : 1;  /**< 1: EOI is busy; 0: EOI is idle */
248232809Sjmallett	uint64_t rwam                         : 2;  /**< Rread Write Aribitration Mode:
249232809Sjmallett                                                         - 10: Reads  have higher priority
250232809Sjmallett                                                         - 01: Writes have higher priority
251232809Sjmallett                                                         00,11: Round-Robin between Reads and Writes */
252232809Sjmallett	uint64_t ena                          : 1;  /**< When reset, all the inbound DMA accesses will be
253232809Sjmallett                                                         drop and all the outbound read response and write
254232809Sjmallett                                                         commits will be drop. It must be set to 1'b1 for
255232809Sjmallett                                                         normal access. */
256232809Sjmallett	uint64_t reset                        : 1;  /**< EOI block Software Reset. */
257232809Sjmallett#else
258232809Sjmallett	uint64_t reset                        : 1;
259232809Sjmallett	uint64_t ena                          : 1;
260232809Sjmallett	uint64_t rwam                         : 2;
261232809Sjmallett	uint64_t busy                         : 1;
262232809Sjmallett	uint64_t reserved_5_7                 : 3;
263232809Sjmallett	uint64_t ppaf_wm                      : 5;
264232809Sjmallett	uint64_t reserved_13_63               : 51;
265232809Sjmallett#endif
266232809Sjmallett	} s;
267232809Sjmallett	struct cvmx_eoi_ctl_sta_s             cnf71xx;
268232809Sjmallett};
269232809Sjmalletttypedef union cvmx_eoi_ctl_sta cvmx_eoi_ctl_sta_t;
270232809Sjmallett
271232809Sjmallett/**
272232809Sjmallett * cvmx_eoi_def_sta0
273232809Sjmallett *
274232809Sjmallett * Note: Working settings tabulated for each corner.
275232809Sjmallett * ================================
276232809Sjmallett * Corner pctl    nctl
277232809Sjmallett * ===============================
278232809Sjmallett *     1   26      22
279232809Sjmallett *     2   30      28
280232809Sjmallett *     3   32      31
281232809Sjmallett *     4   23      19
282232809Sjmallett *     5   27      24
283232809Sjmallett *     6   29      27
284232809Sjmallett *     7   21      17
285232809Sjmallett *     8   25      22
286232809Sjmallett *     9   27      24
287232809Sjmallett *    10   29      24
288232809Sjmallett *    11   34      31
289232809Sjmallett *    12   36      35
290232809Sjmallett *    13   26      21
291232809Sjmallett *    14   31      27
292232809Sjmallett *    15   33      30
293232809Sjmallett *    16   23      18
294232809Sjmallett *    17   28      24
295232809Sjmallett *    18   30      27
296232809Sjmallett *    19   21      17
297232809Sjmallett *    20   27      25
298232809Sjmallett *    21   29      28
299232809Sjmallett *    22   21      17
300232809Sjmallett *    23   25      22
301232809Sjmallett *    24   27      25
302232809Sjmallett *    25   19      15
303232809Sjmallett *    26   23      20
304232809Sjmallett *    27   25      22
305232809Sjmallett *    28   24      24
306232809Sjmallett *    29   28      31
307232809Sjmallett *    30   30      35
308232809Sjmallett *    31   21      21
309232809Sjmallett *    32   25      27
310232809Sjmallett *    33   27      30
311232809Sjmallett *    34   19      18
312232809Sjmallett *    35   23      24
313232809Sjmallett *    36   25      27
314232809Sjmallett *    37   29      19
315232809Sjmallett *    38   33      25
316232809Sjmallett *    39   36      28
317232809Sjmallett *    40   25      17
318232809Sjmallett *    41   30      22
319232809Sjmallett *    42   32      25
320232809Sjmallett *    43   23      15
321232809Sjmallett *    44   27      20
322232809Sjmallett *    45   29      22
323232809Sjmallett * ===============================
324232809Sjmallett *
325232809Sjmallett *                   EOI_DEF_STA0 = EOI Defect Status Register 0
326232809Sjmallett *
327232809Sjmallett *  Register to hold repairout 0/1/2
328232809Sjmallett */
329232809Sjmallettunion cvmx_eoi_def_sta0 {
330232809Sjmallett	uint64_t u64;
331232809Sjmallett	struct cvmx_eoi_def_sta0_s {
332232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
333232809Sjmallett	uint64_t reserved_54_63               : 10;
334232809Sjmallett	uint64_t rout2                        : 18; /**< Repairout2 */
335232809Sjmallett	uint64_t rout1                        : 18; /**< Repairout1 */
336232809Sjmallett	uint64_t rout0                        : 18; /**< Repairout0 */
337232809Sjmallett#else
338232809Sjmallett	uint64_t rout0                        : 18;
339232809Sjmallett	uint64_t rout1                        : 18;
340232809Sjmallett	uint64_t rout2                        : 18;
341232809Sjmallett	uint64_t reserved_54_63               : 10;
342232809Sjmallett#endif
343232809Sjmallett	} s;
344232809Sjmallett	struct cvmx_eoi_def_sta0_s            cnf71xx;
345232809Sjmallett};
346232809Sjmalletttypedef union cvmx_eoi_def_sta0 cvmx_eoi_def_sta0_t;
347232809Sjmallett
348232809Sjmallett/**
349232809Sjmallett * cvmx_eoi_def_sta1
350232809Sjmallett *
351232809Sjmallett * EOI_DEF_STA1 = EOI Defect Status Register 1
352232809Sjmallett *
353232809Sjmallett * Register to hold repairout 3/4/5
354232809Sjmallett */
355232809Sjmallettunion cvmx_eoi_def_sta1 {
356232809Sjmallett	uint64_t u64;
357232809Sjmallett	struct cvmx_eoi_def_sta1_s {
358232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
359232809Sjmallett	uint64_t reserved_54_63               : 10;
360232809Sjmallett	uint64_t rout5                        : 18; /**< Repairout5 */
361232809Sjmallett	uint64_t rout4                        : 18; /**< Repairout4 */
362232809Sjmallett	uint64_t rout3                        : 18; /**< Repairout3 */
363232809Sjmallett#else
364232809Sjmallett	uint64_t rout3                        : 18;
365232809Sjmallett	uint64_t rout4                        : 18;
366232809Sjmallett	uint64_t rout5                        : 18;
367232809Sjmallett	uint64_t reserved_54_63               : 10;
368232809Sjmallett#endif
369232809Sjmallett	} s;
370232809Sjmallett	struct cvmx_eoi_def_sta1_s            cnf71xx;
371232809Sjmallett};
372232809Sjmalletttypedef union cvmx_eoi_def_sta1 cvmx_eoi_def_sta1_t;
373232809Sjmallett
374232809Sjmallett/**
375232809Sjmallett * cvmx_eoi_def_sta2
376232809Sjmallett *
377232809Sjmallett * EOI_DEF_STA2 = EOI Defect Status Register 2
378232809Sjmallett *
379232809Sjmallett * Register to hold repairout 6 and toomanydefects.
380232809Sjmallett */
381232809Sjmallettunion cvmx_eoi_def_sta2 {
382232809Sjmallett	uint64_t u64;
383232809Sjmallett	struct cvmx_eoi_def_sta2_s {
384232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
385232809Sjmallett	uint64_t reserved_25_63               : 39;
386232809Sjmallett	uint64_t toomany                      : 1;  /**< Toomanydefects */
387232809Sjmallett	uint64_t reserved_18_23               : 6;
388232809Sjmallett	uint64_t rout6                        : 18; /**< Repairout6 */
389232809Sjmallett#else
390232809Sjmallett	uint64_t rout6                        : 18;
391232809Sjmallett	uint64_t reserved_18_23               : 6;
392232809Sjmallett	uint64_t toomany                      : 1;
393232809Sjmallett	uint64_t reserved_25_63               : 39;
394232809Sjmallett#endif
395232809Sjmallett	} s;
396232809Sjmallett	struct cvmx_eoi_def_sta2_s            cnf71xx;
397232809Sjmallett};
398232809Sjmalletttypedef union cvmx_eoi_def_sta2 cvmx_eoi_def_sta2_t;
399232809Sjmallett
400232809Sjmallett/**
401232809Sjmallett * cvmx_eoi_ecc_ctl
402232809Sjmallett *
403232809Sjmallett * EOI_ECC_CTL =  EOI ECC Control Register
404232809Sjmallett *
405232809Sjmallett * Description:
406232809Sjmallett *   This register enables ECC for each individual internal memory that requires ECC. For debug purpose, it can also
407232809Sjmallett *   control 1 or 2 bits be flipped in the ECC data.
408232809Sjmallett */
409232809Sjmallettunion cvmx_eoi_ecc_ctl {
410232809Sjmallett	uint64_t u64;
411232809Sjmallett	struct cvmx_eoi_ecc_ctl_s {
412232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
413232809Sjmallett	uint64_t reserved_3_63                : 61;
414232809Sjmallett	uint64_t rben                         : 1;  /**< 1: ECC Enable for read buffer
415232809Sjmallett                                                         - 0: ECC Enable for instruction buffer */
416232809Sjmallett	uint64_t rbsf                         : 2;  /**< read buffer ecc syndrome flip
417232809Sjmallett                                                         2'b00       : No Error Generation
418232809Sjmallett                                                         2'b10, 2'b01: Flip 1 bit
419232809Sjmallett                                                         2'b11       : Flip 2 bits */
420232809Sjmallett#else
421232809Sjmallett	uint64_t rbsf                         : 2;
422232809Sjmallett	uint64_t rben                         : 1;
423232809Sjmallett	uint64_t reserved_3_63                : 61;
424232809Sjmallett#endif
425232809Sjmallett	} s;
426232809Sjmallett	struct cvmx_eoi_ecc_ctl_s             cnf71xx;
427232809Sjmallett};
428232809Sjmalletttypedef union cvmx_eoi_ecc_ctl cvmx_eoi_ecc_ctl_t;
429232809Sjmallett
430232809Sjmallett/**
431232809Sjmallett * cvmx_eoi_endor_bistr_ctl_sta
432232809Sjmallett *
433232809Sjmallett * EOI_ENDOR_BISTR_CTL_STA =  EOI BIST/BISR Control Status Register
434232809Sjmallett *
435232809Sjmallett * Description:
436232809Sjmallett *   This register the bist result of EOI memories.
437232809Sjmallett */
438232809Sjmallettunion cvmx_eoi_endor_bistr_ctl_sta {
439232809Sjmallett	uint64_t u64;
440232809Sjmallett	struct cvmx_eoi_endor_bistr_ctl_sta_s {
441232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
442232809Sjmallett	uint64_t reserved_10_63               : 54;
443232809Sjmallett	uint64_t bisr_done                    : 1;  /**< Endor DSP Memroy Bisr Done Status: 1 - done;
444232809Sjmallett                                                         0 - Not done. */
445232809Sjmallett	uint64_t failed                       : 1;  /**< Bist/Bisr Status: 1 - failed; 0 - Not failed. */
446232809Sjmallett	uint64_t reserved_3_7                 : 5;
447232809Sjmallett	uint64_t bisr_hr                      : 1;  /**< BISR Hardrepair */
448232809Sjmallett	uint64_t bisr_dir                     : 1;  /**< BISR Direction: 0 = input repair packets;
449232809Sjmallett                                                         1 = output defect packets. */
450232809Sjmallett	uint64_t start_bist                   : 1;  /**< Start Bist */
451232809Sjmallett#else
452232809Sjmallett	uint64_t start_bist                   : 1;
453232809Sjmallett	uint64_t bisr_dir                     : 1;
454232809Sjmallett	uint64_t bisr_hr                      : 1;
455232809Sjmallett	uint64_t reserved_3_7                 : 5;
456232809Sjmallett	uint64_t failed                       : 1;
457232809Sjmallett	uint64_t bisr_done                    : 1;
458232809Sjmallett	uint64_t reserved_10_63               : 54;
459232809Sjmallett#endif
460232809Sjmallett	} s;
461232809Sjmallett	struct cvmx_eoi_endor_bistr_ctl_sta_s cnf71xx;
462232809Sjmallett};
463232809Sjmalletttypedef union cvmx_eoi_endor_bistr_ctl_sta cvmx_eoi_endor_bistr_ctl_sta_t;
464232809Sjmallett
465232809Sjmallett/**
466232809Sjmallett * cvmx_eoi_endor_clk_ctl
467232809Sjmallett *
468232809Sjmallett * EOI_ENDOR_CLK_CTL = EOI Endor Clock Control
469232809Sjmallett *
470232809Sjmallett * Register control the generation of Endor DSP and HAB clocks.
471232809Sjmallett */
472232809Sjmallettunion cvmx_eoi_endor_clk_ctl {
473232809Sjmallett	uint64_t u64;
474232809Sjmallett	struct cvmx_eoi_endor_clk_ctl_s {
475232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
476232809Sjmallett	uint64_t reserved_28_63               : 36;
477232809Sjmallett	uint64_t habclk_sel                   : 1;  /**< HAB CLK select
478232809Sjmallett                                                         0x0: HAB CLK select from PHY_PLL output from HAB PS
479232809Sjmallett                                                         0x1: HAB CLK select from DDR_PLL output from HAB PS */
480232809Sjmallett	uint64_t reserved_26_26               : 1;
481232809Sjmallett	uint64_t dsp_div_reset                : 1;  /**< DSP postscalar divider reset */
482232809Sjmallett	uint64_t dsp_ps_en                    : 3;  /**< DSP postscalar divide ratio
483232809Sjmallett                                                         Determines the DSP CK speed.
484232809Sjmallett                                                         0x0 : Divide DSP PLL output by 1
485232809Sjmallett                                                         0x1 : Divide DSP PLL output by 2
486232809Sjmallett                                                         0x2 : Divide DSP PLL output by 3
487232809Sjmallett                                                         0x3 : Divide DSP PLL output by 4
488232809Sjmallett                                                         0x4 : Divide DSP PLL output by 6
489232809Sjmallett                                                         0x5 : Divide DSP PLL output by 8
490232809Sjmallett                                                         0x6 : Divide DSP PLL output by 12
491232809Sjmallett                                                         0x7 : Divide DSP PLL output by 12
492232809Sjmallett                                                         DSP_PS_EN is not used when DSP_DIV_RESET = 1 */
493232809Sjmallett	uint64_t hab_div_reset                : 1;  /**< HAB postscalar divider reset */
494232809Sjmallett	uint64_t hab_ps_en                    : 3;  /**< HAB postscalar divide ratio
495232809Sjmallett                                                         Determines the LMC CK speed.
496232809Sjmallett                                                         0x0 : Divide HAB PLL output by 1
497232809Sjmallett                                                         0x1 : Divide HAB PLL output by 2
498232809Sjmallett                                                         0x2 : Divide HAB PLL output by 3
499232809Sjmallett                                                         0x3 : Divide HAB PLL output by 4
500232809Sjmallett                                                         0x4 : Divide HAB PLL output by 6
501232809Sjmallett                                                         0x5 : Divide HAB PLL output by 8
502232809Sjmallett                                                         0x6 : Divide HAB PLL output by 12
503232809Sjmallett                                                         0x7 : Divide HAB PLL output by 12
504232809Sjmallett                                                         HAB_PS_EN is not used when HAB_DIV_RESET = 1 */
505232809Sjmallett	uint64_t diffamp                      : 4;  /**< PLL diffamp input transconductance */
506232809Sjmallett	uint64_t cps                          : 3;  /**< PLL charge-pump current */
507232809Sjmallett	uint64_t cpb                          : 3;  /**< PLL charge-pump current */
508232809Sjmallett	uint64_t reset_n                      : 1;  /**< PLL reset */
509232809Sjmallett	uint64_t clkf                         : 7;  /**< Multiply reference by CLKF
510232809Sjmallett                                                         32 <= CLKF <= 64
511232809Sjmallett                                                         PHY PLL frequency = 50 * CLKF
512232809Sjmallett                                                         min = 1.6 GHz, max = 3.2 GHz */
513232809Sjmallett#else
514232809Sjmallett	uint64_t clkf                         : 7;
515232809Sjmallett	uint64_t reset_n                      : 1;
516232809Sjmallett	uint64_t cpb                          : 3;
517232809Sjmallett	uint64_t cps                          : 3;
518232809Sjmallett	uint64_t diffamp                      : 4;
519232809Sjmallett	uint64_t hab_ps_en                    : 3;
520232809Sjmallett	uint64_t hab_div_reset                : 1;
521232809Sjmallett	uint64_t dsp_ps_en                    : 3;
522232809Sjmallett	uint64_t dsp_div_reset                : 1;
523232809Sjmallett	uint64_t reserved_26_26               : 1;
524232809Sjmallett	uint64_t habclk_sel                   : 1;
525232809Sjmallett	uint64_t reserved_28_63               : 36;
526232809Sjmallett#endif
527232809Sjmallett	} s;
528232809Sjmallett	struct cvmx_eoi_endor_clk_ctl_s       cnf71xx;
529232809Sjmallett};
530232809Sjmalletttypedef union cvmx_eoi_endor_clk_ctl cvmx_eoi_endor_clk_ctl_t;
531232809Sjmallett
532232809Sjmallett/**
533232809Sjmallett * cvmx_eoi_endor_ctl
534232809Sjmallett *
535232809Sjmallett * EOI_ENDOR_CTL_STA = Endor Control Reigster
536232809Sjmallett * This register controls Endor phy reset and access.
537232809Sjmallett */
538232809Sjmallettunion cvmx_eoi_endor_ctl {
539232809Sjmallett	uint64_t u64;
540232809Sjmallett	struct cvmx_eoi_endor_ctl_s {
541232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
542232809Sjmallett	uint64_t reserved_12_63               : 52;
543232809Sjmallett	uint64_t r_emod                       : 2;  /**< Endian format for data read from the L2C.
544232809Sjmallett                                                         IN:    A-B-C-D-E-F-G-H
545232809Sjmallett                                                         OUT0:  A-B-C-D-E-F-G-H
546232809Sjmallett                                                         OUT1:  H-G-F-E-D-C-B-A
547232809Sjmallett                                                         OUT2:  D-C-B-A-H-G-F-E
548232809Sjmallett                                                         OUT3:  E-F-G-H-A-B-C-D */
549232809Sjmallett	uint64_t w_emod                       : 2;  /**< Endian format for data written the L2C.
550232809Sjmallett                                                         IN:    A-B-C-D-E-F-G-H
551232809Sjmallett                                                         OUT0:  A-B-C-D-E-F-G-H
552232809Sjmallett                                                         OUT1:  H-G-F-E-D-C-B-A
553232809Sjmallett                                                         OUT2:  D-C-B-A-H-G-F-E
554232809Sjmallett                                                         OUT3:  E-F-G-H-A-B-C-D */
555232809Sjmallett	uint64_t inv_rsl_ra2                  : 1;  /**< Invert RSL CSR read  address bit 2. */
556232809Sjmallett	uint64_t inv_rsl_wa2                  : 1;  /**< Invert RSL CSR write address bit 2. */
557232809Sjmallett	uint64_t inv_pp_ra2                   : 1;  /**< Invert PP CSR read  address bit 2. */
558232809Sjmallett	uint64_t inv_pp_wa2                   : 1;  /**< Invert PP CSR write address bit 2. */
559232809Sjmallett	uint64_t reserved_1_3                 : 3;
560232809Sjmallett	uint64_t reset                        : 1;  /**< Endor block software reset. After hardware reset,
561232809Sjmallett                                                         this bit is set to 1'b1 which put Endor into reset
562232809Sjmallett                                                         state. Software must clear this bit to use Endor. */
563232809Sjmallett#else
564232809Sjmallett	uint64_t reset                        : 1;
565232809Sjmallett	uint64_t reserved_1_3                 : 3;
566232809Sjmallett	uint64_t inv_pp_wa2                   : 1;
567232809Sjmallett	uint64_t inv_pp_ra2                   : 1;
568232809Sjmallett	uint64_t inv_rsl_wa2                  : 1;
569232809Sjmallett	uint64_t inv_rsl_ra2                  : 1;
570232809Sjmallett	uint64_t w_emod                       : 2;
571232809Sjmallett	uint64_t r_emod                       : 2;
572232809Sjmallett	uint64_t reserved_12_63               : 52;
573232809Sjmallett#endif
574232809Sjmallett	} s;
575232809Sjmallett	struct cvmx_eoi_endor_ctl_s           cnf71xx;
576232809Sjmallett};
577232809Sjmalletttypedef union cvmx_eoi_endor_ctl cvmx_eoi_endor_ctl_t;
578232809Sjmallett
579232809Sjmallett/**
580232809Sjmallett * cvmx_eoi_int_ena
581232809Sjmallett *
582232809Sjmallett * EOI_INT_ENA = EOI Interrupt Enable Register
583232809Sjmallett *
584232809Sjmallett * Register to enable individual interrupt source in corresponding to EOI_INT_STA
585232809Sjmallett */
586232809Sjmallettunion cvmx_eoi_int_ena {
587232809Sjmallett	uint64_t u64;
588232809Sjmallett	struct cvmx_eoi_int_ena_s {
589232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
590232809Sjmallett	uint64_t reserved_2_63                : 62;
591232809Sjmallett	uint64_t rb_dbe                       : 1;  /**< Read Buffer ECC DBE */
592232809Sjmallett	uint64_t rb_sbe                       : 1;  /**< Read Buffer ECC SBE */
593232809Sjmallett#else
594232809Sjmallett	uint64_t rb_sbe                       : 1;
595232809Sjmallett	uint64_t rb_dbe                       : 1;
596232809Sjmallett	uint64_t reserved_2_63                : 62;
597232809Sjmallett#endif
598232809Sjmallett	} s;
599232809Sjmallett	struct cvmx_eoi_int_ena_s             cnf71xx;
600232809Sjmallett};
601232809Sjmalletttypedef union cvmx_eoi_int_ena cvmx_eoi_int_ena_t;
602232809Sjmallett
603232809Sjmallett/**
604232809Sjmallett * cvmx_eoi_int_sta
605232809Sjmallett *
606232809Sjmallett * EOI_INT_STA = EOI Interrupt Status Register
607232809Sjmallett *
608232809Sjmallett * Summary of different bits of RSL interrupt status.
609232809Sjmallett */
610232809Sjmallettunion cvmx_eoi_int_sta {
611232809Sjmallett	uint64_t u64;
612232809Sjmallett	struct cvmx_eoi_int_sta_s {
613232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
614232809Sjmallett	uint64_t reserved_2_63                : 62;
615232809Sjmallett	uint64_t rb_dbe                       : 1;  /**< Read Buffer ECC DBE */
616232809Sjmallett	uint64_t rb_sbe                       : 1;  /**< Read Buffer ECC SBE */
617232809Sjmallett#else
618232809Sjmallett	uint64_t rb_sbe                       : 1;
619232809Sjmallett	uint64_t rb_dbe                       : 1;
620232809Sjmallett	uint64_t reserved_2_63                : 62;
621232809Sjmallett#endif
622232809Sjmallett	} s;
623232809Sjmallett	struct cvmx_eoi_int_sta_s             cnf71xx;
624232809Sjmallett};
625232809Sjmalletttypedef union cvmx_eoi_int_sta cvmx_eoi_int_sta_t;
626232809Sjmallett
627232809Sjmallett/**
628232809Sjmallett * cvmx_eoi_io_drv
629232809Sjmallett *
630232809Sjmallett * EOI_IO_DRV = EOI Endor IO Drive Control
631232809Sjmallett *
632232809Sjmallett * Register to control Endor Phy IOs
633232809Sjmallett */
634232809Sjmallettunion cvmx_eoi_io_drv {
635232809Sjmallett	uint64_t u64;
636232809Sjmallett	struct cvmx_eoi_io_drv_s {
637232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
638232809Sjmallett	uint64_t reserved_24_63               : 40;
639232809Sjmallett	uint64_t rfif_p                       : 6;  /**< RFIF output driver P-Mos control */
640232809Sjmallett	uint64_t rfif_n                       : 6;  /**< RFIF output driver N-Mos control */
641232809Sjmallett	uint64_t gpo_p                        : 6;  /**< GPO  output driver P-Mos control */
642232809Sjmallett	uint64_t gpo_n                        : 6;  /**< GPO  output driver N-Mos control */
643232809Sjmallett#else
644232809Sjmallett	uint64_t gpo_n                        : 6;
645232809Sjmallett	uint64_t gpo_p                        : 6;
646232809Sjmallett	uint64_t rfif_n                       : 6;
647232809Sjmallett	uint64_t rfif_p                       : 6;
648232809Sjmallett	uint64_t reserved_24_63               : 40;
649232809Sjmallett#endif
650232809Sjmallett	} s;
651232809Sjmallett	struct cvmx_eoi_io_drv_s              cnf71xx;
652232809Sjmallett};
653232809Sjmalletttypedef union cvmx_eoi_io_drv cvmx_eoi_io_drv_t;
654232809Sjmallett
655232809Sjmallett/**
656232809Sjmallett * cvmx_eoi_throttle_ctl
657232809Sjmallett *
658232809Sjmallett * EOI_THROTTLE_CTL = EOI THROTTLE Control Reigster
659232809Sjmallett * This register controls number of outstanding EOI loads to L2C . It is in phy_clock domain.
660232809Sjmallett */
661232809Sjmallettunion cvmx_eoi_throttle_ctl {
662232809Sjmallett	uint64_t u64;
663232809Sjmallett	struct cvmx_eoi_throttle_ctl_s {
664232809Sjmallett#ifdef __BIG_ENDIAN_BITFIELD
665232809Sjmallett	uint64_t reserved_21_63               : 43;
666232809Sjmallett	uint64_t std                          : 5;  /**< Number of outstanding store data accepted by EOI on
667232809Sjmallett                                                         AXI before backpressure ADMA. The value must be from
668232809Sjmallett                                                         from 16 to 31 inclusively. */
669232809Sjmallett	uint64_t reserved_10_15               : 6;
670232809Sjmallett	uint64_t stc                          : 2;  /**< Number of outstanding L2C store command accepted by
671232809Sjmallett                                                         EOI on AXI before backpressure ADMA. The value must be
672232809Sjmallett                                                         from 1 to 3 inclusively. */
673232809Sjmallett	uint64_t reserved_4_7                 : 4;
674232809Sjmallett	uint64_t ldc                          : 4;  /**< Number of outstanding L2C loads. The value must be
675232809Sjmallett                                                         from 1 to 8 inclusively. */
676232809Sjmallett#else
677232809Sjmallett	uint64_t ldc                          : 4;
678232809Sjmallett	uint64_t reserved_4_7                 : 4;
679232809Sjmallett	uint64_t stc                          : 2;
680232809Sjmallett	uint64_t reserved_10_15               : 6;
681232809Sjmallett	uint64_t std                          : 5;
682232809Sjmallett	uint64_t reserved_21_63               : 43;
683232809Sjmallett#endif
684232809Sjmallett	} s;
685232809Sjmallett	struct cvmx_eoi_throttle_ctl_s        cnf71xx;
686232809Sjmallett};
687232809Sjmalletttypedef union cvmx_eoi_throttle_ctl cvmx_eoi_throttle_ctl_t;
688232809Sjmallett
689232809Sjmallett#endif
690