Commit c5aa59e8 authored by David Daney's avatar David Daney

MIPS: OCTEON: Update register definitions.

Add support for cn68xx, cn61xx, cn63xx, cn66xx and cnf71XX.

Add little-endian register layouts.

Patch cvmx-interrupt-rsl.c for changed definition.
Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
parent 5cf02e55
...@@ -130,7 +130,7 @@ void __cvmx_interrupt_gmxx_enable(int interface) ...@@ -130,7 +130,7 @@ void __cvmx_interrupt_gmxx_enable(int interface)
if (num_ports) { if (num_ports) {
if (OCTEON_IS_MODEL(OCTEON_CN38XX) if (OCTEON_IS_MODEL(OCTEON_CN38XX)
|| OCTEON_IS_MODEL(OCTEON_CN58XX)) || OCTEON_IS_MODEL(OCTEON_CN58XX))
gmx_tx_int_en.s.ncb_nxa = 1; gmx_tx_int_en.cn38xx.ncb_nxa = 1;
gmx_tx_int_en.s.pko_nxa = 1; gmx_tx_int_en.s.pko_nxa = 1;
} }
gmx_tx_int_en.s.undflw = (1 << num_ports) - 1; gmx_tx_int_en.s.undflw = (1 << num_ports) - 1;
......
This diff is collapsed.
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Contact: support@caviumnetworks.com * Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK * This file is part of the OCTEON SDK
* *
* Copyright (c) 2003-2008 Cavium Networks * Copyright (c) 2003-2012 Cavium Networks
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as * it under the terms of the GNU General Public License, Version 2, as
...@@ -28,27 +28,43 @@ ...@@ -28,27 +28,43 @@
#ifndef __CVMX_DBG_DEFS_H__ #ifndef __CVMX_DBG_DEFS_H__
#define __CVMX_DBG_DEFS_H__ #define __CVMX_DBG_DEFS_H__
#define CVMX_DBG_DATA \ #define CVMX_DBG_DATA (CVMX_ADD_IO_SEG(0x00011F00000001E8ull))
CVMX_ADD_IO_SEG(0x00011F00000001E8ull)
union cvmx_dbg_data { union cvmx_dbg_data {
uint64_t u64; uint64_t u64;
struct cvmx_dbg_data_s { struct cvmx_dbg_data_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_23_63:41; uint64_t reserved_23_63:41;
uint64_t c_mul:5; uint64_t c_mul:5;
uint64_t dsel_ext:1; uint64_t dsel_ext:1;
uint64_t data:17; uint64_t data:17;
#else
uint64_t data:17;
uint64_t dsel_ext:1;
uint64_t c_mul:5;
uint64_t reserved_23_63:41;
#endif
} s; } s;
struct cvmx_dbg_data_cn30xx { struct cvmx_dbg_data_cn30xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_31_63:33; uint64_t reserved_31_63:33;
uint64_t pll_mul:3; uint64_t pll_mul:3;
uint64_t reserved_23_27:5; uint64_t reserved_23_27:5;
uint64_t c_mul:5; uint64_t c_mul:5;
uint64_t dsel_ext:1; uint64_t dsel_ext:1;
uint64_t data:17; uint64_t data:17;
#else
uint64_t data:17;
uint64_t dsel_ext:1;
uint64_t c_mul:5;
uint64_t reserved_23_27:5;
uint64_t pll_mul:3;
uint64_t reserved_31_63:33;
#endif
} cn30xx; } cn30xx;
struct cvmx_dbg_data_cn30xx cn31xx; struct cvmx_dbg_data_cn30xx cn31xx;
struct cvmx_dbg_data_cn38xx { struct cvmx_dbg_data_cn38xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_29_63:35; uint64_t reserved_29_63:35;
uint64_t d_mul:4; uint64_t d_mul:4;
uint64_t dclk_mul2:1; uint64_t dclk_mul2:1;
...@@ -56,15 +72,32 @@ union cvmx_dbg_data { ...@@ -56,15 +72,32 @@ union cvmx_dbg_data {
uint64_t c_mul:5; uint64_t c_mul:5;
uint64_t dsel_ext:1; uint64_t dsel_ext:1;
uint64_t data:17; uint64_t data:17;
#else
uint64_t data:17;
uint64_t dsel_ext:1;
uint64_t c_mul:5;
uint64_t cclk_div2:1;
uint64_t dclk_mul2:1;
uint64_t d_mul:4;
uint64_t reserved_29_63:35;
#endif
} cn38xx; } cn38xx;
struct cvmx_dbg_data_cn38xx cn38xxp2; struct cvmx_dbg_data_cn38xx cn38xxp2;
struct cvmx_dbg_data_cn30xx cn50xx; struct cvmx_dbg_data_cn30xx cn50xx;
struct cvmx_dbg_data_cn58xx { struct cvmx_dbg_data_cn58xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_29_63:35; uint64_t reserved_29_63:35;
uint64_t rem:6; uint64_t rem:6;
uint64_t c_mul:5; uint64_t c_mul:5;
uint64_t dsel_ext:1; uint64_t dsel_ext:1;
uint64_t data:17; uint64_t data:17;
#else
uint64_t data:17;
uint64_t dsel_ext:1;
uint64_t c_mul:5;
uint64_t rem:6;
uint64_t reserved_29_63:35;
#endif
} cn58xx; } cn58xx;
struct cvmx_dbg_data_cn58xx cn58xxp1; struct cvmx_dbg_data_cn58xx cn58xxp1;
}; };
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Contact: support@caviumnetworks.com * Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK * This file is part of the OCTEON SDK
* *
* Copyright (c) 2003-2010 Cavium Networks * Copyright (c) 2003-2012 Cavium Networks
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as * it under the terms of the GNU General Public License, Version 2, as
...@@ -44,9 +44,15 @@ ...@@ -44,9 +44,15 @@
union cvmx_l2d_bst0 { union cvmx_l2d_bst0 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_bst0_s { struct cvmx_l2d_bst0_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_35_63:29; uint64_t reserved_35_63:29;
uint64_t ftl:1; uint64_t ftl:1;
uint64_t q0stat:34; uint64_t q0stat:34;
#else
uint64_t q0stat:34;
uint64_t ftl:1;
uint64_t reserved_35_63:29;
#endif
} s; } s;
struct cvmx_l2d_bst0_s cn30xx; struct cvmx_l2d_bst0_s cn30xx;
struct cvmx_l2d_bst0_s cn31xx; struct cvmx_l2d_bst0_s cn31xx;
...@@ -64,8 +70,13 @@ union cvmx_l2d_bst0 { ...@@ -64,8 +70,13 @@ union cvmx_l2d_bst0 {
union cvmx_l2d_bst1 { union cvmx_l2d_bst1 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_bst1_s { struct cvmx_l2d_bst1_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q1stat:34; uint64_t q1stat:34;
#else
uint64_t q1stat:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_bst1_s cn30xx; struct cvmx_l2d_bst1_s cn30xx;
struct cvmx_l2d_bst1_s cn31xx; struct cvmx_l2d_bst1_s cn31xx;
...@@ -83,8 +94,13 @@ union cvmx_l2d_bst1 { ...@@ -83,8 +94,13 @@ union cvmx_l2d_bst1 {
union cvmx_l2d_bst2 { union cvmx_l2d_bst2 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_bst2_s { struct cvmx_l2d_bst2_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q2stat:34; uint64_t q2stat:34;
#else
uint64_t q2stat:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_bst2_s cn30xx; struct cvmx_l2d_bst2_s cn30xx;
struct cvmx_l2d_bst2_s cn31xx; struct cvmx_l2d_bst2_s cn31xx;
...@@ -102,8 +118,13 @@ union cvmx_l2d_bst2 { ...@@ -102,8 +118,13 @@ union cvmx_l2d_bst2 {
union cvmx_l2d_bst3 { union cvmx_l2d_bst3 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_bst3_s { struct cvmx_l2d_bst3_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q3stat:34; uint64_t q3stat:34;
#else
uint64_t q3stat:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_bst3_s cn30xx; struct cvmx_l2d_bst3_s cn30xx;
struct cvmx_l2d_bst3_s cn31xx; struct cvmx_l2d_bst3_s cn31xx;
...@@ -121,6 +142,7 @@ union cvmx_l2d_bst3 { ...@@ -121,6 +142,7 @@ union cvmx_l2d_bst3 {
union cvmx_l2d_err { union cvmx_l2d_err {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_err_s { struct cvmx_l2d_err_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_6_63:58; uint64_t reserved_6_63:58;
uint64_t bmhclsel:1; uint64_t bmhclsel:1;
uint64_t ded_err:1; uint64_t ded_err:1;
...@@ -128,6 +150,15 @@ union cvmx_l2d_err { ...@@ -128,6 +150,15 @@ union cvmx_l2d_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t bmhclsel:1;
uint64_t reserved_6_63:58;
#endif
} s; } s;
struct cvmx_l2d_err_s cn30xx; struct cvmx_l2d_err_s cn30xx;
struct cvmx_l2d_err_s cn31xx; struct cvmx_l2d_err_s cn31xx;
...@@ -145,48 +176,97 @@ union cvmx_l2d_err { ...@@ -145,48 +176,97 @@ union cvmx_l2d_err {
union cvmx_l2d_fadr { union cvmx_l2d_fadr {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fadr_s { struct cvmx_l2d_fadr_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_19_63:45; uint64_t reserved_19_63:45;
uint64_t fadru:1; uint64_t fadru:1;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t fset:3; uint64_t fset:3;
uint64_t fadr:11; uint64_t fadr:11;
#else
uint64_t fadr:11;
uint64_t fset:3;
uint64_t fowmsk:4;
uint64_t fadru:1;
uint64_t reserved_19_63:45;
#endif
} s; } s;
struct cvmx_l2d_fadr_cn30xx { struct cvmx_l2d_fadr_cn30xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_18_63:46; uint64_t reserved_18_63:46;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t reserved_13_13:1; uint64_t reserved_13_13:1;
uint64_t fset:2; uint64_t fset:2;
uint64_t reserved_9_10:2; uint64_t reserved_9_10:2;
uint64_t fadr:9; uint64_t fadr:9;
#else
uint64_t fadr:9;
uint64_t reserved_9_10:2;
uint64_t fset:2;
uint64_t reserved_13_13:1;
uint64_t fowmsk:4;
uint64_t reserved_18_63:46;
#endif
} cn30xx; } cn30xx;
struct cvmx_l2d_fadr_cn31xx { struct cvmx_l2d_fadr_cn31xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_18_63:46; uint64_t reserved_18_63:46;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t reserved_13_13:1; uint64_t reserved_13_13:1;
uint64_t fset:2; uint64_t fset:2;
uint64_t reserved_10_10:1; uint64_t reserved_10_10:1;
uint64_t fadr:10; uint64_t fadr:10;
#else
uint64_t fadr:10;
uint64_t reserved_10_10:1;
uint64_t fset:2;
uint64_t reserved_13_13:1;
uint64_t fowmsk:4;
uint64_t reserved_18_63:46;
#endif
} cn31xx; } cn31xx;
struct cvmx_l2d_fadr_cn38xx { struct cvmx_l2d_fadr_cn38xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_18_63:46; uint64_t reserved_18_63:46;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t fset:3; uint64_t fset:3;
uint64_t fadr:11; uint64_t fadr:11;
#else
uint64_t fadr:11;
uint64_t fset:3;
uint64_t fowmsk:4;
uint64_t reserved_18_63:46;
#endif
} cn38xx; } cn38xx;
struct cvmx_l2d_fadr_cn38xx cn38xxp2; struct cvmx_l2d_fadr_cn38xx cn38xxp2;
struct cvmx_l2d_fadr_cn50xx { struct cvmx_l2d_fadr_cn50xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_18_63:46; uint64_t reserved_18_63:46;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t fset:3; uint64_t fset:3;
uint64_t reserved_8_10:3; uint64_t reserved_8_10:3;
uint64_t fadr:8; uint64_t fadr:8;
#else
uint64_t fadr:8;
uint64_t reserved_8_10:3;
uint64_t fset:3;
uint64_t fowmsk:4;
uint64_t reserved_18_63:46;
#endif
} cn50xx; } cn50xx;
struct cvmx_l2d_fadr_cn52xx { struct cvmx_l2d_fadr_cn52xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_18_63:46; uint64_t reserved_18_63:46;
uint64_t fowmsk:4; uint64_t fowmsk:4;
uint64_t fset:3; uint64_t fset:3;
uint64_t reserved_10_10:1; uint64_t reserved_10_10:1;
uint64_t fadr:10; uint64_t fadr:10;
#else
uint64_t fadr:10;
uint64_t reserved_10_10:1;
uint64_t fset:3;
uint64_t fowmsk:4;
uint64_t reserved_18_63:46;
#endif
} cn52xx; } cn52xx;
struct cvmx_l2d_fadr_cn52xx cn52xxp1; struct cvmx_l2d_fadr_cn52xx cn52xxp1;
struct cvmx_l2d_fadr_s cn56xx; struct cvmx_l2d_fadr_s cn56xx;
...@@ -198,9 +278,15 @@ union cvmx_l2d_fadr { ...@@ -198,9 +278,15 @@ union cvmx_l2d_fadr {
union cvmx_l2d_fsyn0 { union cvmx_l2d_fsyn0 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fsyn0_s { struct cvmx_l2d_fsyn0_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_20_63:44; uint64_t reserved_20_63:44;
uint64_t fsyn_ow1:10; uint64_t fsyn_ow1:10;
uint64_t fsyn_ow0:10; uint64_t fsyn_ow0:10;
#else
uint64_t fsyn_ow0:10;
uint64_t fsyn_ow1:10;
uint64_t reserved_20_63:44;
#endif
} s; } s;
struct cvmx_l2d_fsyn0_s cn30xx; struct cvmx_l2d_fsyn0_s cn30xx;
struct cvmx_l2d_fsyn0_s cn31xx; struct cvmx_l2d_fsyn0_s cn31xx;
...@@ -218,9 +304,15 @@ union cvmx_l2d_fsyn0 { ...@@ -218,9 +304,15 @@ union cvmx_l2d_fsyn0 {
union cvmx_l2d_fsyn1 { union cvmx_l2d_fsyn1 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fsyn1_s { struct cvmx_l2d_fsyn1_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_20_63:44; uint64_t reserved_20_63:44;
uint64_t fsyn_ow3:10; uint64_t fsyn_ow3:10;
uint64_t fsyn_ow2:10; uint64_t fsyn_ow2:10;
#else
uint64_t fsyn_ow2:10;
uint64_t fsyn_ow3:10;
uint64_t reserved_20_63:44;
#endif
} s; } s;
struct cvmx_l2d_fsyn1_s cn30xx; struct cvmx_l2d_fsyn1_s cn30xx;
struct cvmx_l2d_fsyn1_s cn31xx; struct cvmx_l2d_fsyn1_s cn31xx;
...@@ -238,8 +330,13 @@ union cvmx_l2d_fsyn1 { ...@@ -238,8 +330,13 @@ union cvmx_l2d_fsyn1 {
union cvmx_l2d_fus0 { union cvmx_l2d_fus0 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fus0_s { struct cvmx_l2d_fus0_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q0fus:34; uint64_t q0fus:34;
#else
uint64_t q0fus:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_fus0_s cn30xx; struct cvmx_l2d_fus0_s cn30xx;
struct cvmx_l2d_fus0_s cn31xx; struct cvmx_l2d_fus0_s cn31xx;
...@@ -257,8 +354,13 @@ union cvmx_l2d_fus0 { ...@@ -257,8 +354,13 @@ union cvmx_l2d_fus0 {
union cvmx_l2d_fus1 { union cvmx_l2d_fus1 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fus1_s { struct cvmx_l2d_fus1_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q1fus:34; uint64_t q1fus:34;
#else
uint64_t q1fus:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_fus1_s cn30xx; struct cvmx_l2d_fus1_s cn30xx;
struct cvmx_l2d_fus1_s cn31xx; struct cvmx_l2d_fus1_s cn31xx;
...@@ -276,8 +378,13 @@ union cvmx_l2d_fus1 { ...@@ -276,8 +378,13 @@ union cvmx_l2d_fus1 {
union cvmx_l2d_fus2 { union cvmx_l2d_fus2 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fus2_s { struct cvmx_l2d_fus2_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_34_63:30; uint64_t reserved_34_63:30;
uint64_t q2fus:34; uint64_t q2fus:34;
#else
uint64_t q2fus:34;
uint64_t reserved_34_63:30;
#endif
} s; } s;
struct cvmx_l2d_fus2_s cn30xx; struct cvmx_l2d_fus2_s cn30xx;
struct cvmx_l2d_fus2_s cn31xx; struct cvmx_l2d_fus2_s cn31xx;
...@@ -295,61 +402,123 @@ union cvmx_l2d_fus2 { ...@@ -295,61 +402,123 @@ union cvmx_l2d_fus2 {
union cvmx_l2d_fus3 { union cvmx_l2d_fus3 {
uint64_t u64; uint64_t u64;
struct cvmx_l2d_fus3_s { struct cvmx_l2d_fus3_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_40_63:24; uint64_t reserved_40_63:24;
uint64_t ema_ctl:3; uint64_t ema_ctl:3;
uint64_t reserved_34_36:3; uint64_t reserved_34_36:3;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t reserved_34_36:3;
uint64_t ema_ctl:3;
uint64_t reserved_40_63:24;
#endif
} s; } s;
struct cvmx_l2d_fus3_cn30xx { struct cvmx_l2d_fus3_cn30xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_35_63:29; uint64_t reserved_35_63:29;
uint64_t crip_64k:1; uint64_t crip_64k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_64k:1;
uint64_t reserved_35_63:29;
#endif
} cn30xx; } cn30xx;
struct cvmx_l2d_fus3_cn31xx { struct cvmx_l2d_fus3_cn31xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_35_63:29; uint64_t reserved_35_63:29;
uint64_t crip_128k:1; uint64_t crip_128k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_128k:1;
uint64_t reserved_35_63:29;
#endif
} cn31xx; } cn31xx;
struct cvmx_l2d_fus3_cn38xx { struct cvmx_l2d_fus3_cn38xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_36_63:28; uint64_t reserved_36_63:28;
uint64_t crip_256k:1; uint64_t crip_256k:1;
uint64_t crip_512k:1; uint64_t crip_512k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_512k:1;
uint64_t crip_256k:1;
uint64_t reserved_36_63:28;
#endif
} cn38xx; } cn38xx;
struct cvmx_l2d_fus3_cn38xx cn38xxp2; struct cvmx_l2d_fus3_cn38xx cn38xxp2;
struct cvmx_l2d_fus3_cn50xx { struct cvmx_l2d_fus3_cn50xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_40_63:24; uint64_t reserved_40_63:24;
uint64_t ema_ctl:3; uint64_t ema_ctl:3;
uint64_t reserved_36_36:1; uint64_t reserved_36_36:1;
uint64_t crip_32k:1; uint64_t crip_32k:1;
uint64_t crip_64k:1; uint64_t crip_64k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_64k:1;
uint64_t crip_32k:1;
uint64_t reserved_36_36:1;
uint64_t ema_ctl:3;
uint64_t reserved_40_63:24;
#endif
} cn50xx; } cn50xx;
struct cvmx_l2d_fus3_cn52xx { struct cvmx_l2d_fus3_cn52xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_40_63:24; uint64_t reserved_40_63:24;
uint64_t ema_ctl:3; uint64_t ema_ctl:3;
uint64_t reserved_36_36:1; uint64_t reserved_36_36:1;
uint64_t crip_128k:1; uint64_t crip_128k:1;
uint64_t crip_256k:1; uint64_t crip_256k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_256k:1;
uint64_t crip_128k:1;
uint64_t reserved_36_36:1;
uint64_t ema_ctl:3;
uint64_t reserved_40_63:24;
#endif
} cn52xx; } cn52xx;
struct cvmx_l2d_fus3_cn52xx cn52xxp1; struct cvmx_l2d_fus3_cn52xx cn52xxp1;
struct cvmx_l2d_fus3_cn56xx { struct cvmx_l2d_fus3_cn56xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_40_63:24; uint64_t reserved_40_63:24;
uint64_t ema_ctl:3; uint64_t ema_ctl:3;
uint64_t reserved_36_36:1; uint64_t reserved_36_36:1;
uint64_t crip_512k:1; uint64_t crip_512k:1;
uint64_t crip_1024k:1; uint64_t crip_1024k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_1024k:1;
uint64_t crip_512k:1;
uint64_t reserved_36_36:1;
uint64_t ema_ctl:3;
uint64_t reserved_40_63:24;
#endif
} cn56xx; } cn56xx;
struct cvmx_l2d_fus3_cn56xx cn56xxp1; struct cvmx_l2d_fus3_cn56xx cn56xxp1;
struct cvmx_l2d_fus3_cn58xx { struct cvmx_l2d_fus3_cn58xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_39_63:25; uint64_t reserved_39_63:25;
uint64_t ema_ctl:2; uint64_t ema_ctl:2;
uint64_t reserved_36_36:1; uint64_t reserved_36_36:1;
uint64_t crip_512k:1; uint64_t crip_512k:1;
uint64_t crip_1024k:1; uint64_t crip_1024k:1;
uint64_t q3fus:34; uint64_t q3fus:34;
#else
uint64_t q3fus:34;
uint64_t crip_1024k:1;
uint64_t crip_512k:1;
uint64_t reserved_36_36:1;
uint64_t ema_ctl:2;
uint64_t reserved_39_63:25;
#endif
} cn58xx; } cn58xx;
struct cvmx_l2d_fus3_cn58xx cn58xxp1; struct cvmx_l2d_fus3_cn58xx cn58xxp1;
}; };
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Contact: support@caviumnetworks.com * Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK * This file is part of the OCTEON SDK
* *
* Copyright (c) 2003-2010 Cavium Networks * Copyright (c) 2003-2012 Cavium Networks
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as * it under the terms of the GNU General Public License, Version 2, as
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
union cvmx_l2t_err { union cvmx_l2t_err {
uint64_t u64; uint64_t u64;
struct cvmx_l2t_err_s { struct cvmx_l2t_err_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_29_63:35; uint64_t reserved_29_63:35;
uint64_t fadru:1; uint64_t fadru:1;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
...@@ -47,8 +48,25 @@ union cvmx_l2t_err { ...@@ -47,8 +48,25 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:10;
uint64_t fset:3;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t fadru:1;
uint64_t reserved_29_63:35;
#endif
} s; } s;
struct cvmx_l2t_err_cn30xx { struct cvmx_l2t_err_cn30xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_28_63:36; uint64_t reserved_28_63:36;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
uint64_t lckerr2:1; uint64_t lckerr2:1;
...@@ -64,8 +82,26 @@ union cvmx_l2t_err { ...@@ -64,8 +82,26 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:8;
uint64_t reserved_19_20:2;
uint64_t fset:2;
uint64_t reserved_23_23:1;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t reserved_28_63:36;
#endif
} cn30xx; } cn30xx;
struct cvmx_l2t_err_cn31xx { struct cvmx_l2t_err_cn31xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_28_63:36; uint64_t reserved_28_63:36;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
uint64_t lckerr2:1; uint64_t lckerr2:1;
...@@ -81,8 +117,26 @@ union cvmx_l2t_err { ...@@ -81,8 +117,26 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:9;
uint64_t reserved_20_20:1;
uint64_t fset:2;
uint64_t reserved_23_23:1;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t reserved_28_63:36;
#endif
} cn31xx; } cn31xx;
struct cvmx_l2t_err_cn38xx { struct cvmx_l2t_err_cn38xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_28_63:36; uint64_t reserved_28_63:36;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
uint64_t lckerr2:1; uint64_t lckerr2:1;
...@@ -96,9 +150,25 @@ union cvmx_l2t_err { ...@@ -96,9 +150,25 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:10;
uint64_t fset:3;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t reserved_28_63:36;
#endif
} cn38xx; } cn38xx;
struct cvmx_l2t_err_cn38xx cn38xxp2; struct cvmx_l2t_err_cn38xx cn38xxp2;
struct cvmx_l2t_err_cn50xx { struct cvmx_l2t_err_cn50xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_28_63:36; uint64_t reserved_28_63:36;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
uint64_t lckerr2:1; uint64_t lckerr2:1;
...@@ -113,8 +183,25 @@ union cvmx_l2t_err { ...@@ -113,8 +183,25 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:7;
uint64_t reserved_18_20:3;
uint64_t fset:3;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t reserved_28_63:36;
#endif
} cn50xx; } cn50xx;
struct cvmx_l2t_err_cn52xx { struct cvmx_l2t_err_cn52xx {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_28_63:36; uint64_t reserved_28_63:36;
uint64_t lck_intena2:1; uint64_t lck_intena2:1;
uint64_t lckerr2:1; uint64_t lckerr2:1;
...@@ -129,6 +216,22 @@ union cvmx_l2t_err { ...@@ -129,6 +216,22 @@ union cvmx_l2t_err {
uint64_t ded_intena:1; uint64_t ded_intena:1;
uint64_t sec_intena:1; uint64_t sec_intena:1;
uint64_t ecc_ena:1; uint64_t ecc_ena:1;
#else
uint64_t ecc_ena:1;
uint64_t sec_intena:1;
uint64_t ded_intena:1;
uint64_t sec_err:1;
uint64_t ded_err:1;
uint64_t fsyn:6;
uint64_t fadr:9;
uint64_t reserved_20_20:1;
uint64_t fset:3;
uint64_t lckerr:1;
uint64_t lck_intena:1;
uint64_t lckerr2:1;
uint64_t lck_intena2:1;
uint64_t reserved_28_63:36;
#endif
} cn52xx; } cn52xx;
struct cvmx_l2t_err_cn52xx cn52xxp1; struct cvmx_l2t_err_cn52xx cn52xxp1;
struct cvmx_l2t_err_s cn56xx; struct cvmx_l2t_err_s cn56xx;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Contact: support@caviumnetworks.com * Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK * This file is part of the OCTEON SDK
* *
* Copyright (c) 2003-2010 Cavium Networks * Copyright (c) 2003-2012 Cavium Networks
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as * it under the terms of the GNU General Public License, Version 2, as
...@@ -45,8 +45,13 @@ ...@@ -45,8 +45,13 @@
union cvmx_led_blink { union cvmx_led_blink {
uint64_t u64; uint64_t u64;
struct cvmx_led_blink_s { struct cvmx_led_blink_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_8_63:56; uint64_t reserved_8_63:56;
uint64_t rate:8; uint64_t rate:8;
#else
uint64_t rate:8;
uint64_t reserved_8_63:56;
#endif
} s; } s;
struct cvmx_led_blink_s cn38xx; struct cvmx_led_blink_s cn38xx;
struct cvmx_led_blink_s cn38xxp2; struct cvmx_led_blink_s cn38xxp2;
...@@ -59,8 +64,13 @@ union cvmx_led_blink { ...@@ -59,8 +64,13 @@ union cvmx_led_blink {
union cvmx_led_clk_phase { union cvmx_led_clk_phase {
uint64_t u64; uint64_t u64;
struct cvmx_led_clk_phase_s { struct cvmx_led_clk_phase_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_7_63:57; uint64_t reserved_7_63:57;
uint64_t phase:7; uint64_t phase:7;
#else
uint64_t phase:7;
uint64_t reserved_7_63:57;
#endif
} s; } s;
struct cvmx_led_clk_phase_s cn38xx; struct cvmx_led_clk_phase_s cn38xx;
struct cvmx_led_clk_phase_s cn38xxp2; struct cvmx_led_clk_phase_s cn38xxp2;
...@@ -73,8 +83,13 @@ union cvmx_led_clk_phase { ...@@ -73,8 +83,13 @@ union cvmx_led_clk_phase {
union cvmx_led_cylon { union cvmx_led_cylon {
uint64_t u64; uint64_t u64;
struct cvmx_led_cylon_s { struct cvmx_led_cylon_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_16_63:48; uint64_t reserved_16_63:48;
uint64_t rate:16; uint64_t rate:16;
#else
uint64_t rate:16;
uint64_t reserved_16_63:48;
#endif
} s; } s;
struct cvmx_led_cylon_s cn38xx; struct cvmx_led_cylon_s cn38xx;
struct cvmx_led_cylon_s cn38xxp2; struct cvmx_led_cylon_s cn38xxp2;
...@@ -87,8 +102,13 @@ union cvmx_led_cylon { ...@@ -87,8 +102,13 @@ union cvmx_led_cylon {
union cvmx_led_dbg { union cvmx_led_dbg {
uint64_t u64; uint64_t u64;
struct cvmx_led_dbg_s { struct cvmx_led_dbg_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_1_63:63; uint64_t reserved_1_63:63;
uint64_t dbg_en:1; uint64_t dbg_en:1;
#else
uint64_t dbg_en:1;
uint64_t reserved_1_63:63;
#endif
} s; } s;
struct cvmx_led_dbg_s cn38xx; struct cvmx_led_dbg_s cn38xx;
struct cvmx_led_dbg_s cn38xxp2; struct cvmx_led_dbg_s cn38xxp2;
...@@ -101,8 +121,13 @@ union cvmx_led_dbg { ...@@ -101,8 +121,13 @@ union cvmx_led_dbg {
union cvmx_led_en { union cvmx_led_en {
uint64_t u64; uint64_t u64;
struct cvmx_led_en_s { struct cvmx_led_en_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_1_63:63; uint64_t reserved_1_63:63;
uint64_t en:1; uint64_t en:1;
#else
uint64_t en:1;
uint64_t reserved_1_63:63;
#endif
} s; } s;
struct cvmx_led_en_s cn38xx; struct cvmx_led_en_s cn38xx;
struct cvmx_led_en_s cn38xxp2; struct cvmx_led_en_s cn38xxp2;
...@@ -115,8 +140,13 @@ union cvmx_led_en { ...@@ -115,8 +140,13 @@ union cvmx_led_en {
union cvmx_led_polarity { union cvmx_led_polarity {
uint64_t u64; uint64_t u64;
struct cvmx_led_polarity_s { struct cvmx_led_polarity_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_1_63:63; uint64_t reserved_1_63:63;
uint64_t polarity:1; uint64_t polarity:1;
#else
uint64_t polarity:1;
uint64_t reserved_1_63:63;
#endif
} s; } s;
struct cvmx_led_polarity_s cn38xx; struct cvmx_led_polarity_s cn38xx;
struct cvmx_led_polarity_s cn38xxp2; struct cvmx_led_polarity_s cn38xxp2;
...@@ -129,8 +159,13 @@ union cvmx_led_polarity { ...@@ -129,8 +159,13 @@ union cvmx_led_polarity {
union cvmx_led_prt { union cvmx_led_prt {
uint64_t u64; uint64_t u64;
struct cvmx_led_prt_s { struct cvmx_led_prt_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_8_63:56; uint64_t reserved_8_63:56;
uint64_t prt_en:8; uint64_t prt_en:8;
#else
uint64_t prt_en:8;
uint64_t reserved_8_63:56;
#endif
} s; } s;
struct cvmx_led_prt_s cn38xx; struct cvmx_led_prt_s cn38xx;
struct cvmx_led_prt_s cn38xxp2; struct cvmx_led_prt_s cn38xxp2;
...@@ -143,8 +178,13 @@ union cvmx_led_prt { ...@@ -143,8 +178,13 @@ union cvmx_led_prt {
union cvmx_led_prt_fmt { union cvmx_led_prt_fmt {
uint64_t u64; uint64_t u64;
struct cvmx_led_prt_fmt_s { struct cvmx_led_prt_fmt_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_4_63:60; uint64_t reserved_4_63:60;
uint64_t format:4; uint64_t format:4;
#else
uint64_t format:4;
uint64_t reserved_4_63:60;
#endif
} s; } s;
struct cvmx_led_prt_fmt_s cn38xx; struct cvmx_led_prt_fmt_s cn38xx;
struct cvmx_led_prt_fmt_s cn38xxp2; struct cvmx_led_prt_fmt_s cn38xxp2;
...@@ -157,8 +197,13 @@ union cvmx_led_prt_fmt { ...@@ -157,8 +197,13 @@ union cvmx_led_prt_fmt {
union cvmx_led_prt_statusx { union cvmx_led_prt_statusx {
uint64_t u64; uint64_t u64;
struct cvmx_led_prt_statusx_s { struct cvmx_led_prt_statusx_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_6_63:58; uint64_t reserved_6_63:58;
uint64_t status:6; uint64_t status:6;
#else
uint64_t status:6;
uint64_t reserved_6_63:58;
#endif
} s; } s;
struct cvmx_led_prt_statusx_s cn38xx; struct cvmx_led_prt_statusx_s cn38xx;
struct cvmx_led_prt_statusx_s cn38xxp2; struct cvmx_led_prt_statusx_s cn38xxp2;
...@@ -171,8 +216,13 @@ union cvmx_led_prt_statusx { ...@@ -171,8 +216,13 @@ union cvmx_led_prt_statusx {
union cvmx_led_udd_cntx { union cvmx_led_udd_cntx {
uint64_t u64; uint64_t u64;
struct cvmx_led_udd_cntx_s { struct cvmx_led_udd_cntx_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_6_63:58; uint64_t reserved_6_63:58;
uint64_t cnt:6; uint64_t cnt:6;
#else
uint64_t cnt:6;
uint64_t reserved_6_63:58;
#endif
} s; } s;
struct cvmx_led_udd_cntx_s cn38xx; struct cvmx_led_udd_cntx_s cn38xx;
struct cvmx_led_udd_cntx_s cn38xxp2; struct cvmx_led_udd_cntx_s cn38xxp2;
...@@ -185,8 +235,13 @@ union cvmx_led_udd_cntx { ...@@ -185,8 +235,13 @@ union cvmx_led_udd_cntx {
union cvmx_led_udd_datx { union cvmx_led_udd_datx {
uint64_t u64; uint64_t u64;
struct cvmx_led_udd_datx_s { struct cvmx_led_udd_datx_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_32_63:32; uint64_t reserved_32_63:32;
uint64_t dat:32; uint64_t dat:32;
#else
uint64_t dat:32;
uint64_t reserved_32_63:32;
#endif
} s; } s;
struct cvmx_led_udd_datx_s cn38xx; struct cvmx_led_udd_datx_s cn38xx;
struct cvmx_led_udd_datx_s cn38xxp2; struct cvmx_led_udd_datx_s cn38xxp2;
...@@ -199,8 +254,13 @@ union cvmx_led_udd_datx { ...@@ -199,8 +254,13 @@ union cvmx_led_udd_datx {
union cvmx_led_udd_dat_clrx { union cvmx_led_udd_dat_clrx {
uint64_t u64; uint64_t u64;
struct cvmx_led_udd_dat_clrx_s { struct cvmx_led_udd_dat_clrx_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_32_63:32; uint64_t reserved_32_63:32;
uint64_t clr:32; uint64_t clr:32;
#else
uint64_t clr:32;
uint64_t reserved_32_63:32;
#endif
} s; } s;
struct cvmx_led_udd_dat_clrx_s cn38xx; struct cvmx_led_udd_dat_clrx_s cn38xx;
struct cvmx_led_udd_dat_clrx_s cn38xxp2; struct cvmx_led_udd_dat_clrx_s cn38xxp2;
...@@ -213,8 +273,13 @@ union cvmx_led_udd_dat_clrx { ...@@ -213,8 +273,13 @@ union cvmx_led_udd_dat_clrx {
union cvmx_led_udd_dat_setx { union cvmx_led_udd_dat_setx {
uint64_t u64; uint64_t u64;
struct cvmx_led_udd_dat_setx_s { struct cvmx_led_udd_dat_setx_s {
#ifdef __BIG_ENDIAN_BITFIELD
uint64_t reserved_32_63:32; uint64_t reserved_32_63:32;
uint64_t set:32; uint64_t set:32;
#else
uint64_t set:32;
uint64_t reserved_32_63:32;
#endif
} s; } s;
struct cvmx_led_udd_dat_setx_s cn38xx; struct cvmx_led_udd_dat_setx_s cn38xx;
struct cvmx_led_udd_dat_setx_s cn38xxp2; struct cvmx_led_udd_dat_setx_s cn38xxp2;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Contact: support@caviumnetworks.com * Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK * This file is part of the OCTEON SDK
* *
* Copyright (c) 2003-2011 Cavium Networks * Copyright (c) 2003-2012 Cavium Networks
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as * it under the terms of the GNU General Public License, Version 2, as
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment