]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/mips/include/asm/octeon/cvmx-mixx-defs.h
Merge branch 'tpmdd-fixes-v3.6' of git://github.com/shpedoikal/linux into for-linus
[karo-tx-linux.git] / arch / mips / include / asm / octeon / cvmx-mixx-defs.h
index 7057c447e69ed15ce54f4f225b7d0f8505cf5420..3155e6019dc83818ee90a5a33fe73b69c3b80c6f 100644 (file)
@@ -4,7 +4,7 @@
  * Contact: support@caviumnetworks.com
  * 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
  * it under the terms of the GNU General Public License, Version 2, as
@@ -47,6 +47,7 @@
 union cvmx_mixx_bist {
        uint64_t u64;
        struct cvmx_mixx_bist_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_6_63:58;
                uint64_t opfdat:1;
                uint64_t mrgdat:1;
@@ -54,24 +55,46 @@ union cvmx_mixx_bist {
                uint64_t ipfdat:1;
                uint64_t irfdat:1;
                uint64_t orfdat:1;
+#else
+               uint64_t orfdat:1;
+               uint64_t irfdat:1;
+               uint64_t ipfdat:1;
+               uint64_t mrqdat:1;
+               uint64_t mrgdat:1;
+               uint64_t opfdat:1;
+               uint64_t reserved_6_63:58;
+#endif
        } s;
        struct cvmx_mixx_bist_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_4_63:60;
                uint64_t mrqdat:1;
                uint64_t ipfdat:1;
                uint64_t irfdat:1;
                uint64_t orfdat:1;
+#else
+               uint64_t orfdat:1;
+               uint64_t irfdat:1;
+               uint64_t ipfdat:1;
+               uint64_t mrqdat:1;
+               uint64_t reserved_4_63:60;
+#endif
        } cn52xx;
        struct cvmx_mixx_bist_cn52xx cn52xxp1;
        struct cvmx_mixx_bist_cn52xx cn56xx;
        struct cvmx_mixx_bist_cn52xx cn56xxp1;
+       struct cvmx_mixx_bist_s cn61xx;
        struct cvmx_mixx_bist_s cn63xx;
        struct cvmx_mixx_bist_s cn63xxp1;
+       struct cvmx_mixx_bist_s cn66xx;
+       struct cvmx_mixx_bist_s cn68xx;
+       struct cvmx_mixx_bist_s cn68xxp1;
 };
 
 union cvmx_mixx_ctl {
        uint64_t u64;
        struct cvmx_mixx_ctl_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_12_63:52;
                uint64_t ts_thresh:4;
                uint64_t crc_strip:1;
@@ -81,8 +104,20 @@ union cvmx_mixx_ctl {
                uint64_t lendian:1;
                uint64_t nbtarb:1;
                uint64_t mrq_hwm:2;
+#else
+               uint64_t mrq_hwm:2;
+               uint64_t nbtarb:1;
+               uint64_t lendian:1;
+               uint64_t reset:1;
+               uint64_t en:1;
+               uint64_t busy:1;
+               uint64_t crc_strip:1;
+               uint64_t ts_thresh:4;
+               uint64_t reserved_12_63:52;
+#endif
        } s;
        struct cvmx_mixx_ctl_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_8_63:56;
                uint64_t crc_strip:1;
                uint64_t busy:1;
@@ -91,17 +126,32 @@ union cvmx_mixx_ctl {
                uint64_t lendian:1;
                uint64_t nbtarb:1;
                uint64_t mrq_hwm:2;
+#else
+               uint64_t mrq_hwm:2;
+               uint64_t nbtarb:1;
+               uint64_t lendian:1;
+               uint64_t reset:1;
+               uint64_t en:1;
+               uint64_t busy:1;
+               uint64_t crc_strip:1;
+               uint64_t reserved_8_63:56;
+#endif
        } cn52xx;
        struct cvmx_mixx_ctl_cn52xx cn52xxp1;
        struct cvmx_mixx_ctl_cn52xx cn56xx;
        struct cvmx_mixx_ctl_cn52xx cn56xxp1;
+       struct cvmx_mixx_ctl_s cn61xx;
        struct cvmx_mixx_ctl_s cn63xx;
        struct cvmx_mixx_ctl_s cn63xxp1;
+       struct cvmx_mixx_ctl_s cn66xx;
+       struct cvmx_mixx_ctl_s cn68xx;
+       struct cvmx_mixx_ctl_s cn68xxp1;
 };
 
 union cvmx_mixx_intena {
        uint64_t u64;
        struct cvmx_mixx_intena_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_8_63:56;
                uint64_t tsena:1;
                uint64_t orunena:1;
@@ -111,8 +161,20 @@ union cvmx_mixx_intena {
                uint64_t othena:1;
                uint64_t ivfena:1;
                uint64_t ovfena:1;
+#else
+               uint64_t ovfena:1;
+               uint64_t ivfena:1;
+               uint64_t othena:1;
+               uint64_t ithena:1;
+               uint64_t data_drpena:1;
+               uint64_t irunena:1;
+               uint64_t orunena:1;
+               uint64_t tsena:1;
+               uint64_t reserved_8_63:56;
+#endif
        } s;
        struct cvmx_mixx_intena_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_7_63:57;
                uint64_t orunena:1;
                uint64_t irunena:1;
@@ -121,84 +183,148 @@ union cvmx_mixx_intena {
                uint64_t othena:1;
                uint64_t ivfena:1;
                uint64_t ovfena:1;
+#else
+               uint64_t ovfena:1;
+               uint64_t ivfena:1;
+               uint64_t othena:1;
+               uint64_t ithena:1;
+               uint64_t data_drpena:1;
+               uint64_t irunena:1;
+               uint64_t orunena:1;
+               uint64_t reserved_7_63:57;
+#endif
        } cn52xx;
        struct cvmx_mixx_intena_cn52xx cn52xxp1;
        struct cvmx_mixx_intena_cn52xx cn56xx;
        struct cvmx_mixx_intena_cn52xx cn56xxp1;
+       struct cvmx_mixx_intena_s cn61xx;
        struct cvmx_mixx_intena_s cn63xx;
        struct cvmx_mixx_intena_s cn63xxp1;
+       struct cvmx_mixx_intena_s cn66xx;
+       struct cvmx_mixx_intena_s cn68xx;
+       struct cvmx_mixx_intena_s cn68xxp1;
 };
 
 union cvmx_mixx_ircnt {
        uint64_t u64;
        struct cvmx_mixx_ircnt_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_20_63:44;
                uint64_t ircnt:20;
+#else
+               uint64_t ircnt:20;
+               uint64_t reserved_20_63:44;
+#endif
        } s;
        struct cvmx_mixx_ircnt_s cn52xx;
        struct cvmx_mixx_ircnt_s cn52xxp1;
        struct cvmx_mixx_ircnt_s cn56xx;
        struct cvmx_mixx_ircnt_s cn56xxp1;
+       struct cvmx_mixx_ircnt_s cn61xx;
        struct cvmx_mixx_ircnt_s cn63xx;
        struct cvmx_mixx_ircnt_s cn63xxp1;
+       struct cvmx_mixx_ircnt_s cn66xx;
+       struct cvmx_mixx_ircnt_s cn68xx;
+       struct cvmx_mixx_ircnt_s cn68xxp1;
 };
 
 union cvmx_mixx_irhwm {
        uint64_t u64;
        struct cvmx_mixx_irhwm_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_40_63:24;
                uint64_t ibplwm:20;
                uint64_t irhwm:20;
+#else
+               uint64_t irhwm:20;
+               uint64_t ibplwm:20;
+               uint64_t reserved_40_63:24;
+#endif
        } s;
        struct cvmx_mixx_irhwm_s cn52xx;
        struct cvmx_mixx_irhwm_s cn52xxp1;
        struct cvmx_mixx_irhwm_s cn56xx;
        struct cvmx_mixx_irhwm_s cn56xxp1;
+       struct cvmx_mixx_irhwm_s cn61xx;
        struct cvmx_mixx_irhwm_s cn63xx;
        struct cvmx_mixx_irhwm_s cn63xxp1;
+       struct cvmx_mixx_irhwm_s cn66xx;
+       struct cvmx_mixx_irhwm_s cn68xx;
+       struct cvmx_mixx_irhwm_s cn68xxp1;
 };
 
 union cvmx_mixx_iring1 {
        uint64_t u64;
        struct cvmx_mixx_iring1_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_60_63:4;
                uint64_t isize:20;
                uint64_t ibase:37;
                uint64_t reserved_0_2:3;
+#else
+               uint64_t reserved_0_2:3;
+               uint64_t ibase:37;
+               uint64_t isize:20;
+               uint64_t reserved_60_63:4;
+#endif
        } s;
        struct cvmx_mixx_iring1_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_60_63:4;
                uint64_t isize:20;
                uint64_t reserved_36_39:4;
                uint64_t ibase:33;
                uint64_t reserved_0_2:3;
+#else
+               uint64_t reserved_0_2:3;
+               uint64_t ibase:33;
+               uint64_t reserved_36_39:4;
+               uint64_t isize:20;
+               uint64_t reserved_60_63:4;
+#endif
        } cn52xx;
        struct cvmx_mixx_iring1_cn52xx cn52xxp1;
        struct cvmx_mixx_iring1_cn52xx cn56xx;
        struct cvmx_mixx_iring1_cn52xx cn56xxp1;
+       struct cvmx_mixx_iring1_s cn61xx;
        struct cvmx_mixx_iring1_s cn63xx;
        struct cvmx_mixx_iring1_s cn63xxp1;
+       struct cvmx_mixx_iring1_s cn66xx;
+       struct cvmx_mixx_iring1_s cn68xx;
+       struct cvmx_mixx_iring1_s cn68xxp1;
 };
 
 union cvmx_mixx_iring2 {
        uint64_t u64;
        struct cvmx_mixx_iring2_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_52_63:12;
                uint64_t itlptr:20;
                uint64_t reserved_20_31:12;
                uint64_t idbell:20;
+#else
+               uint64_t idbell:20;
+               uint64_t reserved_20_31:12;
+               uint64_t itlptr:20;
+               uint64_t reserved_52_63:12;
+#endif
        } s;
        struct cvmx_mixx_iring2_s cn52xx;
        struct cvmx_mixx_iring2_s cn52xxp1;
        struct cvmx_mixx_iring2_s cn56xx;
        struct cvmx_mixx_iring2_s cn56xxp1;
+       struct cvmx_mixx_iring2_s cn61xx;
        struct cvmx_mixx_iring2_s cn63xx;
        struct cvmx_mixx_iring2_s cn63xxp1;
+       struct cvmx_mixx_iring2_s cn66xx;
+       struct cvmx_mixx_iring2_s cn68xx;
+       struct cvmx_mixx_iring2_s cn68xxp1;
 };
 
 union cvmx_mixx_isr {
        uint64_t u64;
        struct cvmx_mixx_isr_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_8_63:56;
                uint64_t ts:1;
                uint64_t orun:1;
@@ -208,8 +334,20 @@ union cvmx_mixx_isr {
                uint64_t orthresh:1;
                uint64_t idblovf:1;
                uint64_t odblovf:1;
+#else
+               uint64_t odblovf:1;
+               uint64_t idblovf:1;
+               uint64_t orthresh:1;
+               uint64_t irthresh:1;
+               uint64_t data_drp:1;
+               uint64_t irun:1;
+               uint64_t orun:1;
+               uint64_t ts:1;
+               uint64_t reserved_8_63:56;
+#endif
        } s;
        struct cvmx_mixx_isr_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_7_63:57;
                uint64_t orun:1;
                uint64_t irun:1;
@@ -218,117 +356,211 @@ union cvmx_mixx_isr {
                uint64_t orthresh:1;
                uint64_t idblovf:1;
                uint64_t odblovf:1;
+#else
+               uint64_t odblovf:1;
+               uint64_t idblovf:1;
+               uint64_t orthresh:1;
+               uint64_t irthresh:1;
+               uint64_t data_drp:1;
+               uint64_t irun:1;
+               uint64_t orun:1;
+               uint64_t reserved_7_63:57;
+#endif
        } cn52xx;
        struct cvmx_mixx_isr_cn52xx cn52xxp1;
        struct cvmx_mixx_isr_cn52xx cn56xx;
        struct cvmx_mixx_isr_cn52xx cn56xxp1;
+       struct cvmx_mixx_isr_s cn61xx;
        struct cvmx_mixx_isr_s cn63xx;
        struct cvmx_mixx_isr_s cn63xxp1;
+       struct cvmx_mixx_isr_s cn66xx;
+       struct cvmx_mixx_isr_s cn68xx;
+       struct cvmx_mixx_isr_s cn68xxp1;
 };
 
 union cvmx_mixx_orcnt {
        uint64_t u64;
        struct cvmx_mixx_orcnt_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_20_63:44;
                uint64_t orcnt:20;
+#else
+               uint64_t orcnt:20;
+               uint64_t reserved_20_63:44;
+#endif
        } s;
        struct cvmx_mixx_orcnt_s cn52xx;
        struct cvmx_mixx_orcnt_s cn52xxp1;
        struct cvmx_mixx_orcnt_s cn56xx;
        struct cvmx_mixx_orcnt_s cn56xxp1;
+       struct cvmx_mixx_orcnt_s cn61xx;
        struct cvmx_mixx_orcnt_s cn63xx;
        struct cvmx_mixx_orcnt_s cn63xxp1;
+       struct cvmx_mixx_orcnt_s cn66xx;
+       struct cvmx_mixx_orcnt_s cn68xx;
+       struct cvmx_mixx_orcnt_s cn68xxp1;
 };
 
 union cvmx_mixx_orhwm {
        uint64_t u64;
        struct cvmx_mixx_orhwm_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_20_63:44;
                uint64_t orhwm:20;
+#else
+               uint64_t orhwm:20;
+               uint64_t reserved_20_63:44;
+#endif
        } s;
        struct cvmx_mixx_orhwm_s cn52xx;
        struct cvmx_mixx_orhwm_s cn52xxp1;
        struct cvmx_mixx_orhwm_s cn56xx;
        struct cvmx_mixx_orhwm_s cn56xxp1;
+       struct cvmx_mixx_orhwm_s cn61xx;
        struct cvmx_mixx_orhwm_s cn63xx;
        struct cvmx_mixx_orhwm_s cn63xxp1;
+       struct cvmx_mixx_orhwm_s cn66xx;
+       struct cvmx_mixx_orhwm_s cn68xx;
+       struct cvmx_mixx_orhwm_s cn68xxp1;
 };
 
 union cvmx_mixx_oring1 {
        uint64_t u64;
        struct cvmx_mixx_oring1_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_60_63:4;
                uint64_t osize:20;
                uint64_t obase:37;
                uint64_t reserved_0_2:3;
+#else
+               uint64_t reserved_0_2:3;
+               uint64_t obase:37;
+               uint64_t osize:20;
+               uint64_t reserved_60_63:4;
+#endif
        } s;
        struct cvmx_mixx_oring1_cn52xx {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_60_63:4;
                uint64_t osize:20;
                uint64_t reserved_36_39:4;
                uint64_t obase:33;
                uint64_t reserved_0_2:3;
+#else
+               uint64_t reserved_0_2:3;
+               uint64_t obase:33;
+               uint64_t reserved_36_39:4;
+               uint64_t osize:20;
+               uint64_t reserved_60_63:4;
+#endif
        } cn52xx;
        struct cvmx_mixx_oring1_cn52xx cn52xxp1;
        struct cvmx_mixx_oring1_cn52xx cn56xx;
        struct cvmx_mixx_oring1_cn52xx cn56xxp1;
+       struct cvmx_mixx_oring1_s cn61xx;
        struct cvmx_mixx_oring1_s cn63xx;
        struct cvmx_mixx_oring1_s cn63xxp1;
+       struct cvmx_mixx_oring1_s cn66xx;
+       struct cvmx_mixx_oring1_s cn68xx;
+       struct cvmx_mixx_oring1_s cn68xxp1;
 };
 
 union cvmx_mixx_oring2 {
        uint64_t u64;
        struct cvmx_mixx_oring2_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_52_63:12;
                uint64_t otlptr:20;
                uint64_t reserved_20_31:12;
                uint64_t odbell:20;
+#else
+               uint64_t odbell:20;
+               uint64_t reserved_20_31:12;
+               uint64_t otlptr:20;
+               uint64_t reserved_52_63:12;
+#endif
        } s;
        struct cvmx_mixx_oring2_s cn52xx;
        struct cvmx_mixx_oring2_s cn52xxp1;
        struct cvmx_mixx_oring2_s cn56xx;
        struct cvmx_mixx_oring2_s cn56xxp1;
+       struct cvmx_mixx_oring2_s cn61xx;
        struct cvmx_mixx_oring2_s cn63xx;
        struct cvmx_mixx_oring2_s cn63xxp1;
+       struct cvmx_mixx_oring2_s cn66xx;
+       struct cvmx_mixx_oring2_s cn68xx;
+       struct cvmx_mixx_oring2_s cn68xxp1;
 };
 
 union cvmx_mixx_remcnt {
        uint64_t u64;
        struct cvmx_mixx_remcnt_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_52_63:12;
                uint64_t iremcnt:20;
                uint64_t reserved_20_31:12;
                uint64_t oremcnt:20;
+#else
+               uint64_t oremcnt:20;
+               uint64_t reserved_20_31:12;
+               uint64_t iremcnt:20;
+               uint64_t reserved_52_63:12;
+#endif
        } s;
        struct cvmx_mixx_remcnt_s cn52xx;
        struct cvmx_mixx_remcnt_s cn52xxp1;
        struct cvmx_mixx_remcnt_s cn56xx;
        struct cvmx_mixx_remcnt_s cn56xxp1;
+       struct cvmx_mixx_remcnt_s cn61xx;
        struct cvmx_mixx_remcnt_s cn63xx;
        struct cvmx_mixx_remcnt_s cn63xxp1;
+       struct cvmx_mixx_remcnt_s cn66xx;
+       struct cvmx_mixx_remcnt_s cn68xx;
+       struct cvmx_mixx_remcnt_s cn68xxp1;
 };
 
 union cvmx_mixx_tsctl {
        uint64_t u64;
        struct cvmx_mixx_tsctl_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t reserved_21_63:43;
                uint64_t tsavl:5;
                uint64_t reserved_13_15:3;
                uint64_t tstot:5;
                uint64_t reserved_5_7:3;
                uint64_t tscnt:5;
+#else
+               uint64_t tscnt:5;
+               uint64_t reserved_5_7:3;
+               uint64_t tstot:5;
+               uint64_t reserved_13_15:3;
+               uint64_t tsavl:5;
+               uint64_t reserved_21_63:43;
+#endif
        } s;
+       struct cvmx_mixx_tsctl_s cn61xx;
        struct cvmx_mixx_tsctl_s cn63xx;
        struct cvmx_mixx_tsctl_s cn63xxp1;
+       struct cvmx_mixx_tsctl_s cn66xx;
+       struct cvmx_mixx_tsctl_s cn68xx;
+       struct cvmx_mixx_tsctl_s cn68xxp1;
 };
 
 union cvmx_mixx_tstamp {
        uint64_t u64;
        struct cvmx_mixx_tstamp_s {
+#ifdef __BIG_ENDIAN_BITFIELD
                uint64_t tstamp:64;
+#else
+               uint64_t tstamp:64;
+#endif
        } s;
+       struct cvmx_mixx_tstamp_s cn61xx;
        struct cvmx_mixx_tstamp_s cn63xx;
        struct cvmx_mixx_tstamp_s cn63xxp1;
+       struct cvmx_mixx_tstamp_s cn66xx;
+       struct cvmx_mixx_tstamp_s cn68xx;
+       struct cvmx_mixx_tstamp_s cn68xxp1;
 };
 
 #endif