19609e3e9SSteven J. Hill /* SPDX-License-Identifier: GPL-2.0 */ 29609e3e9SSteven J. Hill /* Octeon CIU definitions 354293ec3SDavid Daney * 49609e3e9SSteven J. Hill * Copyright (C) 2003-2018 Cavium, Inc. 59609e3e9SSteven J. Hill */ 654293ec3SDavid Daney 754293ec3SDavid Daney #ifndef __CVMX_CIU_DEFS_H__ 854293ec3SDavid Daney #define __CVMX_CIU_DEFS_H__ 954293ec3SDavid Daney 109609e3e9SSteven J. Hill #include <asm/bitfield.h> 119609e3e9SSteven J. Hill 12c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x000107000000A400ull) + ((offset) & 15) * 8) 13c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CC00ull) + ((offset) & 15) * 8) 14c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AC00ull) + ((offset) & 15) * 8) 15aa32a955SDavid Daney #define CVMX_CIU_FUSE (CVMX_ADD_IO_SEG(0x0001070000000728ull)) 16c39f8ecfSSteven J. Hill #define CVMX_CIU_INT_SUM1 (CVMX_ADD_IO_SEG(0x0001070000000108ull)) 17aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0(offset) (CVMX_ADD_IO_SEG(0x0001070000000200ull) + ((offset) & 63) * 16) 18aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002200ull) + ((offset) & 63) * 16) 19aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006200ull) + ((offset) & 63) * 16) 20aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1(offset) (CVMX_ADD_IO_SEG(0x0001070000000208ull) + ((offset) & 63) * 16) 21aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002208ull) + ((offset) & 63) * 16) 22aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006208ull) + ((offset) & 63) * 16) 23aa32a955SDavid Daney #define CVMX_CIU_INTX_SUM0(offset) (CVMX_ADD_IO_SEG(0x0001070000000000ull) + ((offset) & 63) * 8) 24c39f8ecfSSteven J. Hill #define CVMX_CIU_NMI (CVMX_ADD_IO_SEG(0x0001070000000718ull)) 25c39f8ecfSSteven J. Hill #define CVMX_CIU_PCI_INTA (CVMX_ADD_IO_SEG(0x0001070000000750ull)) 26c39f8ecfSSteven J. Hill #define CVMX_CIU_PP_BIST_STAT (CVMX_ADD_IO_SEG(0x00010700000007E0ull)) 27c39f8ecfSSteven J. Hill #define CVMX_CIU_PP_DBG (CVMX_ADD_IO_SEG(0x0001070000000708ull)) 28c39f8ecfSSteven J. Hill #define CVMX_CIU_PP_RST (CVMX_ADD_IO_SEG(0x0001070000000700ull)) 29c39f8ecfSSteven J. Hill #define CVMX_CIU_QLM0 (CVMX_ADD_IO_SEG(0x0001070000000780ull)) 30c39f8ecfSSteven J. Hill #define CVMX_CIU_QLM1 (CVMX_ADD_IO_SEG(0x0001070000000788ull)) 31c39f8ecfSSteven J. Hill #define CVMX_CIU_QLM_JTGC (CVMX_ADD_IO_SEG(0x0001070000000768ull)) 32c39f8ecfSSteven J. Hill #define CVMX_CIU_QLM_JTGD (CVMX_ADD_IO_SEG(0x0001070000000770ull)) 33c39f8ecfSSteven J. Hill #define CVMX_CIU_SOFT_BIST (CVMX_ADD_IO_SEG(0x0001070000000738ull)) 34c39f8ecfSSteven J. Hill #define CVMX_CIU_SOFT_PRST1 (CVMX_ADD_IO_SEG(0x0001070000000758ull)) 35c39f8ecfSSteven J. Hill #define CVMX_CIU_SOFT_PRST (CVMX_ADD_IO_SEG(0x0001070000000748ull)) 36c39f8ecfSSteven J. Hill #define CVMX_CIU_SOFT_RST (CVMX_ADD_IO_SEG(0x0001070000000740ull)) 37c39f8ecfSSteven J. Hill #define CVMX_CIU_SUM2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x0001070000008C00ull) + ((offset) & 15) * 8) 38c39f8ecfSSteven J. Hill #define CVMX_CIU_TIM_MULTI_CAST (CVMX_ADD_IO_SEG(0x000107000000C200ull)) 39c39f8ecfSSteven J. Hill #define CVMX_CIU_TIMX(offset) (CVMX_ADD_IO_SEG(0x0001070000000480ull) + ((offset) & 15) * 8) 40c39f8ecfSSteven J. Hill 41c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_CLRX(unsigned long offset) 42c5aa59e8SDavid Daney { 43c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 44c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 45c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 46c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 47c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 48c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 49c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 50c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 51c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 52c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 53c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 54c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 55c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 56c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 57c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 58c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 59c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 60c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 61c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 62c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 63c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100600ull) + (offset) * 8; 64c5aa59e8SDavid Daney } 65c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 66c5aa59e8SDavid Daney } 67c5aa59e8SDavid Daney 68c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_SETX(unsigned long offset) 69c5aa59e8SDavid Daney { 70c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 71c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 72c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 73c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 74c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 75c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 76c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 77c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 78c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 79c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 80c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 81c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 82c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 83c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 84c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 85c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 86c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 87c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 88c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 89c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 90c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100400ull) + (offset) * 8; 91c5aa59e8SDavid Daney } 92c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 93c5aa59e8SDavid Daney } 94c5aa59e8SDavid Daney 95c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_PP_POKEX(unsigned long offset) 96c5aa59e8SDavid Daney { 97c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 98c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 99c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 100c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 101c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 102c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 1031fb6e539SSteven J. Hill case OCTEON_CN70XX & OCTEON_FAMILY_MASK: 104c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 105c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 106c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 107c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 108c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 109c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 110c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 111c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 112c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 113c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 114c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 115c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 116c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 117c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 118c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100200ull) + (offset) * 8; 1191fb6e539SSteven J. Hill case OCTEON_CNF75XX & OCTEON_FAMILY_MASK: 1201fb6e539SSteven J. Hill case OCTEON_CN73XX & OCTEON_FAMILY_MASK: 1211fb6e539SSteven J. Hill case OCTEON_CN78XX & OCTEON_FAMILY_MASK: 1221fb6e539SSteven J. Hill return CVMX_ADD_IO_SEG(0x0001010000030000ull) + (offset) * 8; 123c5aa59e8SDavid Daney } 124c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 125c5aa59e8SDavid Daney } 126c5aa59e8SDavid Daney 127c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_WDOGX(unsigned long offset) 128c5aa59e8SDavid Daney { 129c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 130c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 131c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 132c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 133c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 134c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 1351fb6e539SSteven J. Hill case OCTEON_CN70XX & OCTEON_FAMILY_MASK: 136c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 137c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 138c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 139c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 140c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 141c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 142c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 143c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 144c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 145c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 146c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 147c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 148c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 149c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 150c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100000ull) + (offset) * 8; 1511fb6e539SSteven J. Hill case OCTEON_CNF75XX & OCTEON_FAMILY_MASK: 1521fb6e539SSteven J. Hill case OCTEON_CN73XX & OCTEON_FAMILY_MASK: 1531fb6e539SSteven J. Hill case OCTEON_CN78XX & OCTEON_FAMILY_MASK: 1541fb6e539SSteven J. Hill return CVMX_ADD_IO_SEG(0x0001010000020000ull) + (offset) * 8; 155c5aa59e8SDavid Daney } 156c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 157c5aa59e8SDavid Daney } 15854293ec3SDavid Daney 1599609e3e9SSteven J. Hill 160769f4372SSteven J. Hill union cvmx_ciu_qlm { 161aa32a955SDavid Daney uint64_t u64; 162769f4372SSteven J. Hill struct cvmx_ciu_qlm_s { 1639609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t g2bypass:1, 1649609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_53_62:10, 1659609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t g2deemph:5, 1669609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_45_47:3, 1679609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t g2margin:5, 1689609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_32_39:8, 1699609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t txbypass:1, 1709609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_21_30:10, 1719609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t txdeemph:5, 1729609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_13_15:3, 1739609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t txmargin:5, 1749609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_4_7:4, 1759609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t lane_en:4, 1769609e3e9SSteven J. Hill ;))))))))))))) 177aa32a955SDavid Daney } s; 17854293ec3SDavid Daney }; 17954293ec3SDavid Daney 18054293ec3SDavid Daney union cvmx_ciu_qlm_jtgc { 18154293ec3SDavid Daney uint64_t u64; 18254293ec3SDavid Daney struct cvmx_ciu_qlm_jtgc_s { 1839609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_17_63:47, 1849609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t bypass_ext:1, 1859609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_11_15:5, 1869609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t clk_div:3, 1879609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_7_7:1, 1889609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t mux_sel:3, 1899609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t bypass:4, 1909609e3e9SSteven J. Hill ;))))))) 19154293ec3SDavid Daney } s; 19254293ec3SDavid Daney }; 19354293ec3SDavid Daney 19454293ec3SDavid Daney union cvmx_ciu_qlm_jtgd { 19554293ec3SDavid Daney uint64_t u64; 19654293ec3SDavid Daney struct cvmx_ciu_qlm_jtgd_s { 1979609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t capture:1, 1989609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t shift:1, 1999609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t update:1, 2009609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_45_60:16, 2019609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t select:5, 2029609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_37_39:3, 2039609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t shft_cnt:5, 2049609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t shft_reg:32, 2059609e3e9SSteven J. Hill ;)))))))) 20654293ec3SDavid Daney } s; 20754293ec3SDavid Daney }; 20854293ec3SDavid Daney 20954293ec3SDavid Daney union cvmx_ciu_soft_prst { 21054293ec3SDavid Daney uint64_t u64; 21154293ec3SDavid Daney struct cvmx_ciu_soft_prst_s { 2129609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_3_63:61, 2139609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t host64:1, 2149609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t npi:1, 2159609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t soft_prst:1, 2169609e3e9SSteven J. Hill ;)))) 21754293ec3SDavid Daney } s; 21854293ec3SDavid Daney }; 21954293ec3SDavid Daney 22054293ec3SDavid Daney union cvmx_ciu_timx { 22154293ec3SDavid Daney uint64_t u64; 22254293ec3SDavid Daney struct cvmx_ciu_timx_s { 2239609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_37_63:27, 2249609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t one_shot:1, 2259609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t len:36, 2269609e3e9SSteven J. Hill ;))) 22754293ec3SDavid Daney } s; 22854293ec3SDavid Daney }; 22954293ec3SDavid Daney 23054293ec3SDavid Daney union cvmx_ciu_wdogx { 23154293ec3SDavid Daney uint64_t u64; 23254293ec3SDavid Daney struct cvmx_ciu_wdogx_s { 2339609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t reserved_46_63:18, 2349609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t gstopen:1, 2359609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t dstop:1, 2369609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t cnt:24, 2379609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t len:16, 2389609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t state:2, 2399609e3e9SSteven J. Hill __BITFIELD_FIELD(uint64_t mode:2, 2409609e3e9SSteven J. Hill ;))))))) 24154293ec3SDavid Daney } s; 24254293ec3SDavid Daney }; 24354293ec3SDavid Daney 2449609e3e9SSteven J. Hill #endif /* __CVMX_CIU_DEFS_H__ */ 245