1*7cfbdc5bSsimonb /* $NetBSD: octeon_powreg.h,v 1.5 2020/06/23 05:15:33 simonb Exp $ */ 2f693c922Shikaru 3f693c922Shikaru /* 4f693c922Shikaru * Copyright (c) 2007 Internet Initiative Japan, Inc. 5f693c922Shikaru * All rights reserved. 6f693c922Shikaru * 7f693c922Shikaru * Redistribution and use in source and binary forms, with or without 8f693c922Shikaru * modification, are permitted provided that the following conditions 9f693c922Shikaru * are met: 10f693c922Shikaru * 1. Redistributions of source code must retain the above copyright 11f693c922Shikaru * notice, this list of conditions and the following disclaimer. 12f693c922Shikaru * 2. Redistributions in binary form must reproduce the above copyright 13f693c922Shikaru * notice, this list of conditions and the following disclaimer in the 14f693c922Shikaru * documentation and/or other materials provided with the distribution. 15f693c922Shikaru * 16f693c922Shikaru * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17f693c922Shikaru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18f693c922Shikaru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19f693c922Shikaru * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20f693c922Shikaru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21f693c922Shikaru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22f693c922Shikaru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23f693c922Shikaru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24f693c922Shikaru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25f693c922Shikaru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26f693c922Shikaru * SUCH DAMAGE. 27f693c922Shikaru */ 28f693c922Shikaru 29f693c922Shikaru /* 30f693c922Shikaru * POW Registers 31f693c922Shikaru */ 32f693c922Shikaru 33f693c922Shikaru #ifndef _OCTEON_POWREG_H_ 34f693c922Shikaru #define _OCTEON_POWREG_H_ 35f693c922Shikaru 36f693c922Shikaru /* ---- register addresses */ 37f693c922Shikaru 38*7cfbdc5bSsimonb #define POW_PP_GRP_MSK(core) (UINT64_C(0x0001670000000000) + (core) * 8) 39f693c922Shikaru #define POW_WQ_INT_THR0 UINT64_C(0x0001670000000080) 40f693c922Shikaru #define POW_WQ_INT_THR1 UINT64_C(0x0001670000000088) 41f693c922Shikaru #define POW_WQ_INT_THR2 UINT64_C(0x0001670000000090) 42f693c922Shikaru #define POW_WQ_INT_THR3 UINT64_C(0x0001670000000098) 43f693c922Shikaru #define POW_WQ_INT_THR4 UINT64_C(0x00016700000000a0) 44f693c922Shikaru #define POW_WQ_INT_THR5 UINT64_C(0x00016700000000a8) 45f693c922Shikaru #define POW_WQ_INT_THR6 UINT64_C(0x00016700000000b0) 46f693c922Shikaru #define POW_WQ_INT_THR7 UINT64_C(0x00016700000000b8) 47f693c922Shikaru #define POW_WQ_INT_THR8 UINT64_C(0x00016700000000c0) 48f693c922Shikaru #define POW_WQ_INT_THR9 UINT64_C(0x00016700000000c8) 49f693c922Shikaru #define POW_WQ_INT_THR10 UINT64_C(0x00016700000000d0) 50f693c922Shikaru #define POW_WQ_INT_THR11 UINT64_C(0x00016700000000d8) 51f693c922Shikaru #define POW_WQ_INT_THR12 UINT64_C(0x00016700000000e0) 52f693c922Shikaru #define POW_WQ_INT_THR13 UINT64_C(0x00016700000000e8) 53f693c922Shikaru #define POW_WQ_INT_THR14 UINT64_C(0x00016700000000f0) 54f693c922Shikaru #define POW_WQ_INT_THR15 UINT64_C(0x00016700000000f8) 55f693c922Shikaru #define POW_WQ_INT_CNT0 UINT64_C(0x0001670000000100) 56f693c922Shikaru #define POW_WQ_INT_CNT1 UINT64_C(0x0001670000000108) 57f693c922Shikaru #define POW_WQ_INT_CNT2 UINT64_C(0x0001670000000110) 58f693c922Shikaru #define POW_WQ_INT_CNT3 UINT64_C(0x0001670000000118) 59f693c922Shikaru #define POW_WQ_INT_CNT4 UINT64_C(0x0001670000000120) 60f693c922Shikaru #define POW_WQ_INT_CNT5 UINT64_C(0x0001670000000128) 61f693c922Shikaru #define POW_WQ_INT_CNT6 UINT64_C(0x0001670000000130) 62f693c922Shikaru #define POW_WQ_INT_CNT7 UINT64_C(0x0001670000000138) 63f693c922Shikaru #define POW_WQ_INT_CNT8 UINT64_C(0x0001670000000140) 64f693c922Shikaru #define POW_WQ_INT_CNT9 UINT64_C(0x0001670000000148) 65f693c922Shikaru #define POW_WQ_INT_CNT10 UINT64_C(0x0001670000000150) 66f693c922Shikaru #define POW_WQ_INT_CNT11 UINT64_C(0x0001670000000158) 67f693c922Shikaru #define POW_WQ_INT_CNT12 UINT64_C(0x0001670000000160) 68f693c922Shikaru #define POW_WQ_INT_CNT13 UINT64_C(0x0001670000000168) 69f693c922Shikaru #define POW_WQ_INT_CNT14 UINT64_C(0x0001670000000170) 70f693c922Shikaru #define POW_WQ_INT_CNT15 UINT64_C(0x0001670000000178) 71f693c922Shikaru #define POW_QOS_THR0 UINT64_C(0x0001670000000180) 72f693c922Shikaru #define POW_QOS_THR1 UINT64_C(0x0001670000000188) 73f693c922Shikaru #define POW_QOS_THR2 UINT64_C(0x0001670000000190) 74f693c922Shikaru #define POW_QOS_THR3 UINT64_C(0x0001670000000198) 75f693c922Shikaru #define POW_QOS_THR4 UINT64_C(0x00016700000001a0) 76f693c922Shikaru #define POW_QOS_THR5 UINT64_C(0x00016700000001a8) 77f693c922Shikaru #define POW_QOS_THR6 UINT64_C(0x00016700000001b0) 78f693c922Shikaru #define POW_QOS_THR7 UINT64_C(0x00016700000001b8) 79f693c922Shikaru #define POW_QOS_RND0 UINT64_C(0x00016700000001c0) 80f693c922Shikaru #define POW_QOS_RND1 UINT64_C(0x00016700000001c8) 81f693c922Shikaru #define POW_QOS_RND2 UINT64_C(0x00016700000001d0) 82f693c922Shikaru #define POW_QOS_RND3 UINT64_C(0x00016700000001d8) 83f693c922Shikaru #define POW_QOS_RND4 UINT64_C(0x00016700000001e0) 84f693c922Shikaru #define POW_QOS_RND5 UINT64_C(0x00016700000001e8) 85f693c922Shikaru #define POW_QOS_RND6 UINT64_C(0x00016700000001f0) 86f693c922Shikaru #define POW_QOS_RND7 UINT64_C(0x00016700000001f8) 87f693c922Shikaru #define POW_WQ_INT UINT64_C(0x0001670000000200) 88f693c922Shikaru #define POW_WQ_INT_PC UINT64_C(0x0001670000000208) 89f693c922Shikaru #define POW_NW_TIM UINT64_C(0x0001670000000210) 90f693c922Shikaru #define POW_ECC_ERR UINT64_C(0x0001670000000218) 91f693c922Shikaru #define POW_NOS_CNT UINT64_C(0x0001670000000220) 92f693c922Shikaru #define POW_WS_PC0 UINT64_C(0x0001670000000280) 93f693c922Shikaru #define POW_WS_PC1 UINT64_C(0x0001670000000288) 94f693c922Shikaru #define POW_WS_PC2 UINT64_C(0x0001670000000290) 95f693c922Shikaru #define POW_WS_PC3 UINT64_C(0x0001670000000298) 96f693c922Shikaru #define POW_WS_PC4 UINT64_C(0x00016700000002a0) 97f693c922Shikaru #define POW_WS_PC5 UINT64_C(0x00016700000002a8) 98f693c922Shikaru #define POW_WS_PC6 UINT64_C(0x00016700000002b0) 99f693c922Shikaru #define POW_WS_PC7 UINT64_C(0x00016700000002b8) 100f693c922Shikaru #define POW_WS_PC8 UINT64_C(0x00016700000002c0) 101f693c922Shikaru #define POW_WS_PC9 UINT64_C(0x00016700000002c8) 102f693c922Shikaru #define POW_WS_PC10 UINT64_C(0x00016700000002d0) 103f693c922Shikaru #define POW_WS_PC11 UINT64_C(0x00016700000002d8) 104f693c922Shikaru #define POW_WS_PC12 UINT64_C(0x00016700000002e0) 105f693c922Shikaru #define POW_WS_PC13 UINT64_C(0x00016700000002e8) 106f693c922Shikaru #define POW_WS_PC14 UINT64_C(0x00016700000002f0) 107f693c922Shikaru #define POW_WS_PC15 UINT64_C(0x00016700000002f8) 108f693c922Shikaru #define POW_WA_PC0 UINT64_C(0x0001670000000300) 109f693c922Shikaru #define POW_WA_PC1 UINT64_C(0x0001670000000308) 110f693c922Shikaru #define POW_WA_PC2 UINT64_C(0x0001670000000310) 111f693c922Shikaru #define POW_WA_PC3 UINT64_C(0x0001670000000318) 112f693c922Shikaru #define POW_WA_PC4 UINT64_C(0x0001670000000320) 113f693c922Shikaru #define POW_WA_PC5 UINT64_C(0x0001670000000328) 114f693c922Shikaru #define POW_WA_PC6 UINT64_C(0x0001670000000330) 115f693c922Shikaru #define POW_WA_PC7 UINT64_C(0x0001670000000338) 116f693c922Shikaru #define POW_IQ_CNT0 UINT64_C(0x0001670000000340) 117f693c922Shikaru #define POW_IQ_CNT1 UINT64_C(0x0001670000000348) 118f693c922Shikaru #define POW_IQ_CNT2 UINT64_C(0x0001670000000350) 119f693c922Shikaru #define POW_IQ_CNT3 UINT64_C(0x0001670000000358) 120f693c922Shikaru #define POW_IQ_CNT4 UINT64_C(0x0001670000000360) 121f693c922Shikaru #define POW_IQ_CNT5 UINT64_C(0x0001670000000368) 122f693c922Shikaru #define POW_IQ_CNT6 UINT64_C(0x0001670000000370) 123f693c922Shikaru #define POW_IQ_CNT7 UINT64_C(0x0001670000000378) 124f693c922Shikaru #define POW_WA_COM_PC UINT64_C(0x0001670000000380) 125f693c922Shikaru #define POW_IQ_COM_CNT UINT64_C(0x0001670000000388) 126f693c922Shikaru #define POW_TS_PC UINT64_C(0x0001670000000390) 127f693c922Shikaru #define POW_DS_PC UINT64_C(0x0001670000000398) 128f693c922Shikaru #define POW_BIST_STAT UINT64_C(0x00016700000003f8) 129f693c922Shikaru 130f693c922Shikaru #define POW_BASE UINT64_C(0x0001670000000000) 131f693c922Shikaru #define POW_SIZE UINT64_C(0x400) 132f693c922Shikaru 133*7cfbdc5bSsimonb #define POW_PP_GRP_MSK_OFFSET(core) (UINT64_C(0) + (core) * 8) 134f693c922Shikaru #define POW_WQ_INT_THR0_OFFSET UINT64_C(0x80) 135f693c922Shikaru #define POW_WQ_INT_THR1_OFFSET UINT64_C(0x88) 136f693c922Shikaru #define POW_WQ_INT_THR2_OFFSET UINT64_C(0x90) 137f693c922Shikaru #define POW_WQ_INT_THR3_OFFSET UINT64_C(0x98) 138f693c922Shikaru #define POW_WQ_INT_THR4_OFFSET UINT64_C(0xa0) 139f693c922Shikaru #define POW_WQ_INT_THR5_OFFSET UINT64_C(0xa8) 140f693c922Shikaru #define POW_WQ_INT_THR6_OFFSET UINT64_C(0xb0) 141f693c922Shikaru #define POW_WQ_INT_THR7_OFFSET UINT64_C(0xb8) 142f693c922Shikaru #define POW_WQ_INT_THR8_OFFSET UINT64_C(0xc0) 143f693c922Shikaru #define POW_WQ_INT_THR9_OFFSET UINT64_C(0xc8) 144f693c922Shikaru #define POW_WQ_INT_THR10_OFFSET UINT64_C(0xd0) 145f693c922Shikaru #define POW_WQ_INT_THR11_OFFSET UINT64_C(0xd8) 146f693c922Shikaru #define POW_WQ_INT_THR12_OFFSET UINT64_C(0xe0) 147f693c922Shikaru #define POW_WQ_INT_THR13_OFFSET UINT64_C(0xe8) 148f693c922Shikaru #define POW_WQ_INT_THR14_OFFSET UINT64_C(0xf0) 149f693c922Shikaru #define POW_WQ_INT_THR15_OFFSET UINT64_C(0xf8) 150f693c922Shikaru #define POW_WQ_INT_CNT0_OFFSET UINT64_C(0x100) 151f693c922Shikaru #define POW_WQ_INT_CNT1_OFFSET UINT64_C(0x108) 152f693c922Shikaru #define POW_WQ_INT_CNT2_OFFSET UINT64_C(0x110) 153f693c922Shikaru #define POW_WQ_INT_CNT3_OFFSET UINT64_C(0x118) 154f693c922Shikaru #define POW_WQ_INT_CNT4_OFFSET UINT64_C(0x120) 155f693c922Shikaru #define POW_WQ_INT_CNT5_OFFSET UINT64_C(0x128) 156f693c922Shikaru #define POW_WQ_INT_CNT6_OFFSET UINT64_C(0x130) 157f693c922Shikaru #define POW_WQ_INT_CNT7_OFFSET UINT64_C(0x138) 158f693c922Shikaru #define POW_WQ_INT_CNT8_OFFSET UINT64_C(0x140) 159f693c922Shikaru #define POW_WQ_INT_CNT9_OFFSET UINT64_C(0x148) 160f693c922Shikaru #define POW_WQ_INT_CNT10_OFFSET UINT64_C(0x150) 161f693c922Shikaru #define POW_WQ_INT_CNT11_OFFSET UINT64_C(0x158) 162f693c922Shikaru #define POW_WQ_INT_CNT12_OFFSET UINT64_C(0x160) 163f693c922Shikaru #define POW_WQ_INT_CNT13_OFFSET UINT64_C(0x168) 164f693c922Shikaru #define POW_WQ_INT_CNT14_OFFSET UINT64_C(0x170) 165f693c922Shikaru #define POW_WQ_INT_CNT15_OFFSET UINT64_C(0x178) 166f693c922Shikaru #define POW_QOS_THR0_OFFSET UINT64_C(0x180) 167f693c922Shikaru #define POW_QOS_THR1_OFFSET UINT64_C(0x188) 168f693c922Shikaru #define POW_QOS_THR2_OFFSET UINT64_C(0x190) 169f693c922Shikaru #define POW_QOS_THR3_OFFSET UINT64_C(0x198) 170f693c922Shikaru #define POW_QOS_THR4_OFFSET UINT64_C(0x1a0) 171f693c922Shikaru #define POW_QOS_THR5_OFFSET UINT64_C(0x1a8) 172f693c922Shikaru #define POW_QOS_THR6_OFFSET UINT64_C(0x1b0) 173f693c922Shikaru #define POW_QOS_THR7_OFFSET UINT64_C(0x1b8) 174f693c922Shikaru #define POW_QOS_RND0_OFFSET UINT64_C(0x1c0) 175f693c922Shikaru #define POW_QOS_RND1_OFFSET UINT64_C(0x1c8) 176f693c922Shikaru #define POW_QOS_RND2_OFFSET UINT64_C(0x1d0) 177f693c922Shikaru #define POW_QOS_RND3_OFFSET UINT64_C(0x1d8) 178f693c922Shikaru #define POW_QOS_RND4_OFFSET UINT64_C(0x1e0) 179f693c922Shikaru #define POW_QOS_RND5_OFFSET UINT64_C(0x1e8) 180f693c922Shikaru #define POW_QOS_RND6_OFFSET UINT64_C(0x1f0) 181f693c922Shikaru #define POW_QOS_RND7_OFFSET UINT64_C(0x1f8) 182f693c922Shikaru #define POW_WQ_INT_OFFSET UINT64_C(0x200) 183f693c922Shikaru #define POW_WQ_INT_PC_OFFSET UINT64_C(0x208) 184f693c922Shikaru #define POW_NW_TIM_OFFSET UINT64_C(0x210) 185f693c922Shikaru #define POW_ECC_ERR_OFFSET UINT64_C(0x218) 186f693c922Shikaru #define POW_NOS_CNT_OFFSET UINT64_C(0x220) 187f693c922Shikaru #define POW_WS_PC0_OFFSET UINT64_C(0x280) 188f693c922Shikaru #define POW_WS_PC1_OFFSET UINT64_C(0x288) 189f693c922Shikaru #define POW_WS_PC2_OFFSET UINT64_C(0x290) 190f693c922Shikaru #define POW_WS_PC3_OFFSET UINT64_C(0x298) 191f693c922Shikaru #define POW_WS_PC4_OFFSET UINT64_C(0x2a0) 192f693c922Shikaru #define POW_WS_PC5_OFFSET UINT64_C(0x2a8) 193f693c922Shikaru #define POW_WS_PC6_OFFSET UINT64_C(0x2b0) 194f693c922Shikaru #define POW_WS_PC7_OFFSET UINT64_C(0x2b8) 195f693c922Shikaru #define POW_WS_PC8_OFFSET UINT64_C(0x2c0) 196f693c922Shikaru #define POW_WS_PC9_OFFSET UINT64_C(0x2c8) 197f693c922Shikaru #define POW_WS_PC10_OFFSET UINT64_C(0x2d0) 198f693c922Shikaru #define POW_WS_PC11_OFFSET UINT64_C(0x2d8) 199f693c922Shikaru #define POW_WS_PC12_OFFSET UINT64_C(0x2e0) 200f693c922Shikaru #define POW_WS_PC13_OFFSET UINT64_C(0x2e8) 201f693c922Shikaru #define POW_WS_PC14_OFFSET UINT64_C(0x2f0) 202f693c922Shikaru #define POW_WS_PC15_OFFSET UINT64_C(0x2f8) 203f693c922Shikaru #define POW_WA_PC0_OFFSET UINT64_C(0x300) 204f693c922Shikaru #define POW_WA_PC1_OFFSET UINT64_C(0x308) 205f693c922Shikaru #define POW_WA_PC2_OFFSET UINT64_C(0x310) 206f693c922Shikaru #define POW_WA_PC3_OFFSET UINT64_C(0x318) 207f693c922Shikaru #define POW_WA_PC4_OFFSET UINT64_C(0x320) 208f693c922Shikaru #define POW_WA_PC5_OFFSET UINT64_C(0x328) 209f693c922Shikaru #define POW_WA_PC6_OFFSET UINT64_C(0x330) 210f693c922Shikaru #define POW_WA_PC7_OFFSET UINT64_C(0x338) 211f693c922Shikaru #define POW_IQ_CNT0_OFFSET UINT64_C(0x340) 212f693c922Shikaru #define POW_IQ_CNT1_OFFSET UINT64_C(0x348) 213f693c922Shikaru #define POW_IQ_CNT2_OFFSET UINT64_C(0x350) 214f693c922Shikaru #define POW_IQ_CNT3_OFFSET UINT64_C(0x358) 215f693c922Shikaru #define POW_IQ_CNT4_OFFSET UINT64_C(0x360) 216f693c922Shikaru #define POW_IQ_CNT5_OFFSET UINT64_C(0x368) 217f693c922Shikaru #define POW_IQ_CNT6_OFFSET UINT64_C(0x370) 218f693c922Shikaru #define POW_IQ_CNT7_OFFSET UINT64_C(0x378) 219f693c922Shikaru #define POW_WA_COM_PC_OFFSET UINT64_C(0x380) 220f693c922Shikaru #define POW_IQ_COM_CNT_OFFSET UINT64_C(0x388) 221f693c922Shikaru #define POW_TS_PC_OFFSET UINT64_C(0x390) 222f693c922Shikaru #define POW_DS_PC_OFFSET UINT64_C(0x398) 223f693c922Shikaru #define POW_BIST_STAT_OFFSET UINT64_C(0x3f8) 224f693c922Shikaru 225f693c922Shikaru /* ---- register bits */ 226f693c922Shikaru 227f693c922Shikaru #define POW_PP_GRP_MSKX_XXX_63_16 UINT64_C(0xffffffffffff0000) 228f693c922Shikaru #define POW_PP_GRP_MSKX_GRP_MSK UINT64_C(0x000000000000ffff) 229f693c922Shikaru 230f693c922Shikaru #define POW_WQ_INT_THRX_XXX_63_29 UINT64_C(0xffffffffe0000000) 231f693c922Shikaru #define POW_WQ_INT_THRX_TC_EN UINT64_C(0x0000000010000000) 232f693c922Shikaru #define POW_WQ_INT_THRX_TC_THR UINT64_C(0x000000000f000000) 233f693c922Shikaru #define POW_WQ_INT_THRX_XXX_23_18 UINT64_C(0x0000000000fc0000) 234f693c922Shikaru #define POW_WQ_INT_THRX_DS_THR UINT64_C(0x000000000003f000) 235f693c922Shikaru #define POW_WQ_INT_THRX_XXX_11_6 UINT64_C(0x0000000000000fc0) 236f693c922Shikaru #define POW_WQ_INT_THRX_IQ_THR UINT64_C(0x000000000000003f) 237f693c922Shikaru 238f693c922Shikaru #define POW_WQ_INT_CNTX_XXX_63_28 UINT64_C(0xfffffffff0000000) 239f693c922Shikaru #define POW_WQ_INT_CNTX_TC_CNT UINT64_C(0x000000000f000000) 240f693c922Shikaru #define POW_WQ_INT_CNTX_XXX_23_18 UINT64_C(0x0000000000fc0000) 241f693c922Shikaru #define POW_WQ_INT_CNTX_DS_CNT UINT64_C(0x000000000003f000) 242f693c922Shikaru #define POW_WQ_INT_CNTX_XXX_11_6 UINT64_C(0x0000000000000fc0) 243f693c922Shikaru #define POW_WQ_INT_CNTX_IQ_CNT UINT64_C(0x000000000000003f) 244f693c922Shikaru 245f693c922Shikaru #define POW_QOS_THRX_XXX_63_55 UINT64_C(0xff80000000000000) 246f693c922Shikaru #define POW_QOS_THRX_DES_CNT UINT64_C(0x007f000000000000) 247f693c922Shikaru #define POW_QOS_THRX_XXX_47_43 UINT64_C(0x0000f80000000000) 248f693c922Shikaru #define POW_QOS_THRX_BUF_CNT UINT64_C(0x000007f000000000) 249f693c922Shikaru #define POW_QOS_THRX_XXX_35_31 UINT64_C(0x0000000f80000000) 250f693c922Shikaru #define POW_QOS_THRX_FREE_CNT UINT64_C(0x000000007f000000) 251f693c922Shikaru #define POW_QOS_THRX_XXX_23_18 UINT64_C(0x0000000000fc0000) 252f693c922Shikaru #define POW_QOS_THRX_MAX_THR UINT64_C(0x000000000003f000) 253f693c922Shikaru #define POW_QOS_THRX_XXX_11_6 UINT64_C(0x0000000000000fc0) 254f693c922Shikaru #define POW_QOS_THRX_MIN_THR UINT64_C(0x000000000000003f) 255f693c922Shikaru 256f693c922Shikaru #define POW_QOS_RNDX_XXX_63_32 UINT64_C(0xffffffff00000000) 257f693c922Shikaru #define POW_QOS_RNDX_RND_P3 UINT64_C(0x00000000ff000000) 258f693c922Shikaru #define POW_QOS_RNDX_RND_P2 UINT64_C(0x0000000000ff0000) 259f693c922Shikaru #define POW_QOS_RNDX_RND_P1 UINT64_C(0x000000000000ff00) 260f693c922Shikaru #define POW_QOS_RNDX_RND UINT64_C(0x00000000000000ff) 261f693c922Shikaru 262f693c922Shikaru #define POW_WQ_INT_XXX_63_32 UINT64_C(0xffffffff00000000) 263f693c922Shikaru #define POW_WQ_INT_IQ_DIS UINT64_C(0x00000000ffff0000) 264f693c922Shikaru #define POW_WQ_INT_WQ_INT UINT64_C(0x000000000000ffff) 265f693c922Shikaru 266f693c922Shikaru #define POW_WQ_INT_PC_XXX_63_60 UINT64_C(0xf000000000000000) 267f693c922Shikaru #define POW_WQ_INT_PC_PC UINT64_C(0x0fffffff00000000) 268f693c922Shikaru #define POW_WQ_INT_PC_XXX_31_28 UINT64_C(0x00000000f0000000) 269f693c922Shikaru #define POW_WQ_INT_PC_PC_THR UINT64_C(0x000000000fffff00) 270f693c922Shikaru #define POW_WQ_INT_PC_XXX_7_0 UINT64_C(0x00000000000000ff) 271f693c922Shikaru 272f693c922Shikaru #define POW_NW_TIM_XXX_63_10 UINT64_C(0xfffffffffffffc00) 273f693c922Shikaru #define POW_NW_TIM_NW_TIM UINT64_C(0x00000000000003ff) 274f693c922Shikaru 275f693c922Shikaru #define POW_ECC_ERR_XXX_63_45 UINT64_C(0xffffe00000000000) 276f693c922Shikaru #define POW_ECC_ERR_IOP_IE UINT64_C(0x00001fff00000000) 277f693c922Shikaru #define POW_ECC_ERR_XXX_31_29 UINT64_C(0x00000000e0000000) 278f693c922Shikaru #define POW_ECC_ERR_IOP UINT64_C(0x000000001fff0000) 279b9fcd28bSsimonb #define POW_ECC_ERR_IOP_CSRPEND 28 280b9fcd28bSsimonb #define POW_ECC_ERR_IOP_DBGPEND 27 281b9fcd28bSsimonb #define POW_ECC_ERR_IOP_ADDWORK 26 282b9fcd28bSsimonb #define POW_ECC_ERR_IOP_ILLOP 25 283b9fcd28bSsimonb #define POW_ECC_ERR_IOP_PEND24 24 284b9fcd28bSsimonb #define POW_ECC_ERR_IOP_PEND23 23 285b9fcd28bSsimonb #define POW_ECC_ERR_IOP_PEND22 22 286b9fcd28bSsimonb #define POW_ECC_ERR_IOP_PEND21 21 287b9fcd28bSsimonb #define POW_ECC_ERR_IOP_TAGNULL 20 288b9fcd28bSsimonb #define POW_ECC_ERR_IOP_TAGNULLNULL 19 289b9fcd28bSsimonb #define POW_ECC_ERR_IOP_ORDATOM 18 290b9fcd28bSsimonb #define POW_ECC_ERR_IOP_NULL 17 291b9fcd28bSsimonb #define POW_ECC_ERR_IOP_NULLNULL 16 292f693c922Shikaru #define POW_ECC_ERR_XXX_15_14 UINT64_C(0x000000000000c000) 293f693c922Shikaru #define POW_ECC_ERR_RPE_IE UINT64_C(0x0000000000002000) 294f693c922Shikaru #define POW_ECC_ERR_RPE UINT64_C(0x0000000000001000) 295f693c922Shikaru #define POW_ECC_ERR_XXX_11_9 UINT64_C(0x0000000000000e00) 296f693c922Shikaru #define POW_ECC_ERR_SYN UINT64_C(0x00000000000001f0) 297f693c922Shikaru #define POW_ECC_ERR_DBE_IE UINT64_C(0x0000000000000008) 298f693c922Shikaru #define POW_ECC_ERR_SBE_IE UINT64_C(0x0000000000000004) 299f693c922Shikaru #define POW_ECC_ERR_DBE UINT64_C(0x0000000000000002) 300f693c922Shikaru #define POW_ECC_ERR_SBE UINT64_C(0x0000000000000001) 301f693c922Shikaru 302f693c922Shikaru #define POW_NOS_CNT_XXX_63_7 UINT64_C(0xffffffffffffff80) 303f693c922Shikaru #define POW_NOS_CNT_NOS_CNT UINT64_C(0x000000000000007f) 304f693c922Shikaru 305f693c922Shikaru #define POW_WS_PC0_XXX_63_32 UINT64_C(0xffffffff00000000) 306f693c922Shikaru #define POW_WS_PC0_WS_PC UINT64_C(0x00000000ffffffff) 307f693c922Shikaru 308f693c922Shikaru #define POW_WA_PC0_XXX_63_32 UINT64_C(0xffffffff00000000) 309f693c922Shikaru #define POW_WA_PC0_WA_PC UINT64_C(0x00000000ffffffff) 310f693c922Shikaru 311f693c922Shikaru #define POW_IQ_CNT0_XXX_63_32 UINT64_C(0xffffffff00000000) 312f693c922Shikaru #define POW_IQ_CNT0_IQ_CNT UINT64_C(0x00000000ffffffff) 313f693c922Shikaru 314f693c922Shikaru #define POW_WA_COM_PC_XXX_63_32 UINT64_C(0xffffffff00000000) 315f693c922Shikaru #define POW_WA_COM_PC_WA_PC UINT64_C(0x00000000ffffffff) 316f693c922Shikaru 317f693c922Shikaru #define POW_WQ_COM_CNT_XXX_63_32 UINT64_C(0xffffffff00000000) 318f693c922Shikaru #define POW_WQ_COM_CNT_IQ_CNT UINT64_C(0x00000000ffffffff) 319f693c922Shikaru 320f693c922Shikaru #define POW_TS_PC_XXX_63_32 UINT64_C(0xffffffff00000000) 321f693c922Shikaru #define POW_TS_PC_TS_PC UINT64_C(0x00000000ffffffff) 322f693c922Shikaru 323f693c922Shikaru #define POW_DS_PC_XXX_63_32 UINT64_C(0xffffffff00000000) 324f693c922Shikaru #define POW_DS_PC_DS_PC UINT64_C(0x00000000ffffffff) 325f693c922Shikaru 326f693c922Shikaru #define POW_BIST_STAT_XXX_63_7 UINT64_C(0xfffffffffffe0000) 327f693c922Shikaru #define POW_BIST_STAT_PP UINT64_C(0x0000000000010000) 328f693c922Shikaru #define POW_BIST_STAT_XXX_15_9 UINT64_C(0x000000000000fe00) 329f693c922Shikaru #define POW_BIST_STAT_CAM UINT64_C(0x0000000000000100) 330f693c922Shikaru #define POW_BIST_STAT_NBT1 UINT64_C(0x0000000000000080) 331f693c922Shikaru #define POW_BIST_STAT_NBT0 UINT64_C(0x0000000000000040) 332f693c922Shikaru #define POW_BIST_STAT_IDX UINT64_C(0x0000000000000020) 333f693c922Shikaru #define POW_BIST_STAT_FIDX UINT64_C(0x0000000000000010) 334f693c922Shikaru #define POW_BIST_STAT_NBR1 UINT64_C(0x0000000000000008) 335f693c922Shikaru #define POW_BIST_STAT_NBR0 UINT64_C(0x0000000000000004) 336f693c922Shikaru #define POW_BIST_STAT_PEND UINT64_C(0x0000000000000002) 337f693c922Shikaru #define POW_BIST_STAT_ADR UINT64_C(0x0000000000000001) 338f693c922Shikaru 339f693c922Shikaru /* ---- pow operations */ 340f693c922Shikaru 341b9fcd28bSsimonb /* -- pow load operations */ 342f693c922Shikaru 343b9fcd28bSsimonb /* get work load */ 344b9fcd28bSsimonb #define POW_OP_SUBDID_GET_WORK 0 345f693c922Shikaru #define POW_GET_WORK_LOAD_WAIT UINT64_C(0x0000000000000008) 346f693c922Shikaru 347b9fcd28bSsimonb /* pow status load */ 348b9fcd28bSsimonb #define POW_OP_SUBDID_STATUS_LOAD 1 349f693c922Shikaru #define POW_STATUS_LOAD_COREID UINT64_C(0x00000000000003c0) 350f693c922Shikaru #define POW_STATUS_LOAD_GET_REV UINT64_C(0x0000000000000020) 351f693c922Shikaru #define POW_STATUS_LOAD_GET_CUR UINT64_C(0x0000000000000010) 352f693c922Shikaru #define POW_STATUS_LOAD_GET_WQP UINT64_C(0x0000000000000008) 353f693c922Shikaru #define POW_STATUS_LOAD_GET_2_0 UINT64_C(0x0000000000000007) 354f693c922Shikaru 355f693c922Shikaru /* get_cur = 0 and get_wqp = 0 ("pend_tag") */ 356f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_XXX_63_62 UINT64_C(0xc000000000000000) 357f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH UINT64_C(0x2000000000000000) 358f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_FULL UINT64_C(0x1000000000000000) 359f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_NULL UINT64_C(0x0800000000000000) 360f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED UINT64_C(0x0400000000000000) 361f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED_SWITCH UINT64_C(0x0200000000000000) 362f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED UINT64_C(0x0100000000000000) 363f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK UINT64_C(0x0080000000000000) 364f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK_WAIT UINT64_C(0x0040000000000000) 365f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NULL_RD UINT64_C(0x0020000000000000) 366f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED_CLR UINT64_C(0x0010000000000000) 367f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_51 UINT64_C(0x0008000000000000) 368f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_INDEX UINT64_C(0x0007ff0000000000) 369f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_GRP UINT64_C(0x000000f000000000) 370f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_35_34 UINT64_C(0x0000000c00000000) 371f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TYPE UINT64_C(0x0000000300000000) 372f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TAG UINT64_C(0x00000000ffffffff) 373f693c922Shikaru 374f693c922Shikaru /* get_cur = 0 and get_wqp = 1 ("pend_wqp") */ 375f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_XXX_63_62 UINT64_C(0xc000000000000000) 376f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH UINT64_C(0x2000000000000000) 377f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_FULL UINT64_C(0x1000000000000000) 378f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_NULL UINT64_C(0x0800000000000000) 379f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED UINT64_C(0x0400000000000000) 380f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED_SWITCH UINT64_C(0x0200000000000000) 381f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED UINT64_C(0x0100000000000000) 382f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK UINT64_C(0x0080000000000000) 383f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK_WAIT UINT64_C(0x0040000000000000) 384f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NULL_RD UINT64_C(0x0020000000000000) 385f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED_CLR UINT64_C(0x0010000000000000) 386f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_XXX_51 UINT64_C(0x0008000000000000) 387f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_INDEX UINT64_C(0x0007ff0000000000) 388f693c922Shikaru #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_WQP UINT64_C(0x0000000fffffffff) 389f693c922Shikaru 390f693c922Shikaru /* get_cur = 1 and get_wqp = 0 and get_rev = 0 ("cur_tag_next") */ 391f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_XXX_63_62 UINT64_C(0xc000000000000000) 392f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_LINK_INDEX UINT64_C(0x3ff8000000000000) 393f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_INDEX UINT64_C(0x0007ff0000000000) 394f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_GRP UINT64_C(0x000000f000000000) 395f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_HEAD UINT64_C(0x0000000800000000) 396f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAIL UINT64_C(0x0000000400000000) 397f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG_TYPE UINT64_C(0x0000000300000000) 398f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG UINT64_C(0x00000000ffffffff) 399f693c922Shikaru 400f693c922Shikaru /* get_cur = 1 and get_wqp = 0 and get_rev = 1 ("cur_tag_prev") */ 401f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_XXX_63_62 UINT64_C(0xc000000000000000) 402f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_REVLINK_INDEX UINT64_C(0x3ff8000000000000) 403f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_INDEX UINT64_C(0x0007ff0000000000) 404f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_GRP UINT64_C(0x000000f000000000) 405f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_HEAD UINT64_C(0x0000000800000000) 406f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAIL UINT64_C(0x0000000400000000) 407f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG_TYPE UINT64_C(0x0000000300000000) 408f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG UINT64_C(0x00000000ffffffff) 409f693c922Shikaru 410f693c922Shikaru /* get_cur = 1 and get_wqp = 1 and get_rev = 0 ("cur_wqp_next") */ 411f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_XXX_63_62 UINT64_C(0xc000000000000000) 412f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_LINK_INDEX UINT64_C(0x3ff8000000000000) 413f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_INDEX UINT64_C(0x0007ff0000000000) 414f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_GRP UINT64_C(0x000000f000000000) 415f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_WQP UINT64_C(0x0000000fffffffff) 416f693c922Shikaru 417f693c922Shikaru /* get_cur = 1 and get_wqp = 1 and get_rev = 1 ("cur_wqp_prev") */ 418f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_XXX_63_62 UINT64_C(0xc000000000000000) 419f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_REVLINK_INDEX UINT64_C(0x3ff8000000000000) 420f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_INDEX UINT64_C(0x0007ff0000000000) 421f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_GRP UINT64_C(0x000000f000000000) 422f693c922Shikaru #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_WQP UINT64_C(0x0000000fffffffff) 423f693c922Shikaru 424b9fcd28bSsimonb /* pow memory load */ 425b9fcd28bSsimonb #define POW_OP_SUBDID_MEMORY_LOAD 2 426f693c922Shikaru #define POW_MEMORY_LOAD_INDEX UINT64_C(0x000000000000ffe0) 427f693c922Shikaru #define POW_MEMORY_LOAD_GET_DES UINT64_C(0x0000000000000010) 428f693c922Shikaru #define POW_MEMORY_LOAD_GET_WQP UINT64_C(0x0000000000000008) 429f693c922Shikaru #define POW_MEMORY_LOAD_2_0 UINT64_C(0x0000000000000007) 430f693c922Shikaru 431f693c922Shikaru /* get_des = 0 and get_wqp = 0 ("tag") */ 432f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_XXX_63_51 UINT64_C(0xfff8000000000000) 433f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_NEXT_INDEX UINT64_C(0x0007ff0000000000) 434f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_GRP UINT64_C(0x000000f000000000) 435f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_XXX_35 UINT64_C(0x0000000800000000) 436f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_TAIL UINT64_C(0x0000000400000000) 437f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_TAG_TYPE UINT64_C(0x0000000300000000) 438f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_TAG_TAG UINT64_C(0x00000000ffffffff) 439f693c922Shikaru 440f693c922Shikaru /* get_des = 0 and get_wqp = 1 ("wqp") */ 441f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_WQP_XXX_63_51 UINT64_C(0xfff8000000000000) 442f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_WQP_NEXT_INDEX UINT64_C(0x0007ff0000000000) 443f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_WQP_GRP UINT64_C(0x000000f000000000) 444f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_WQP_WQP UINT64_C(0x0000000fffffffff) 445f693c922Shikaru 446f693c922Shikaru /* get_des = 1 ("desched") */ 447f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_XXX_63_51 UINT64_C(0xfff8000000000000) 448f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_FWD_INDEX UINT64_C(0x0007ff0000000000) 449f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_GRP UINT64_C(0x000000f000000000) 450f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_NOSCHED UINT64_C(0x0000000800000000) 451f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_SWITCH UINT64_C(0x0000000400000000) 452f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TYPE UINT64_C(0x0000000300000000) 453f693c922Shikaru #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TAG UINT64_C(0x00000000ffffffff) 454f693c922Shikaru 455b9fcd28bSsimonb /* pow index/pointer load */ 456b9fcd28bSsimonb #define POW_OP_SUBDID_IDXPTR_LOAD 3 457b9fcd28bSsimonb 458f693c922Shikaru #define POW_IDXPTR_LOAD_QOSGRP UINT64_C(0x00000000000001e0) 459f693c922Shikaru #define POW_IDXPTR_LOAD_GET_DES_GET_TAIL UINT64_C(0x0000000000000010) 460f693c922Shikaru #define POW_IDXPTR_LOAD_GET_RMT UINT64_C(0x0000000000000008) 461f693c922Shikaru #define POW_IDXPTR_LOAD_2_0 UINT64_C(0x0000000000000007) 462f693c922Shikaru 463f693c922Shikaru /* get_rmt = 0 and get_des_get_tail = 0 ("qos") */ 464f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_63_52 UINT64_C(0xfff0000000000000) 465f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_VAL UINT64_C(0x0008000000000000) 466f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_ONE UINT64_C(0x0004000000000000) 467f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_49 UINT64_C(0x0002000000000000) 468f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_HEAD UINT64_C(0x0001ffc000000000) 469f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_37 UINT64_C(0x0000002000000000) 470f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_TAIL UINT64_C(0x0000001ffc000000) 471f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_VAL UINT64_C(0x0000000002000000) 472f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_ONE UINT64_C(0x0000000001000000) 473f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_23 UINT64_C(0x0000000000800000) 474f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_HEAD UINT64_C(0x00000000007ff000) 475f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_11 UINT64_C(0x0000000000000800) 476f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_TAIL UINT64_C(0x00000000000007ff) 477f693c922Shikaru 478f693c922Shikaru /* get_rmt = 0 and get_des_get_tail = 1 ("desched") */ 479f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_63_52 UINT64_C(0xfff0000000000000) 480f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_VAL UINT64_C(0x0008000000000000) 481f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_ONE UINT64_C(0x0004000000000000) 482f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_49 UINT64_C(0x0002000000000000) 483f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_HEAD UINT64_C(0x0001ffc000000000) 484f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_37 UINT64_C(0x0000002000000000) 485f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_TAIL UINT64_C(0x0000001ffc000000) 486f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_VAL UINT64_C(0x0000000002000000) 487f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_ONE UINT64_C(0x0000000001000000) 488f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_23 UINT64_C(0x0000000000800000) 489f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_HEAD UINT64_C(0x00000000007ff000) 490f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_11 UINT64_C(0x0000000000000800) 491f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_TAIL UINT64_C(0x00000000000007ff) 492f693c922Shikaru 493f693c922Shikaru /* get_rmt = 1 and get_des_get_tail = 0 ("remote_head") */ 494f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_XXX_63_39 UINT64_C(0xffffff8000000000) 495f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_IS_HEAD UINT64_C(0x0000004000000000) 496f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_VAL UINT64_C(0x0000002000000000) 497f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_ONE UINT64_C(0x0000001000000000) 498f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_HEAD UINT64_C(0x0000000fffffffff) 499f693c922Shikaru 500f693c922Shikaru /* get_rmt = 1 and get_des_get_tail = 1 ("remote_tail") */ 501f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_XXX_63_39 UINT64_C(0xffffff8000000000) 502f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_IS_HEAD UINT64_C(0x0000004000000000) 503f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_VAL UINT64_C(0x0000002000000000) 504f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_ONE UINT64_C(0x0000001000000000) 505f693c922Shikaru #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_TAIL UINT64_C(0x0000000fffffffff) 506f693c922Shikaru 507b9fcd28bSsimonb /* pow null rd */ 508b9fcd28bSsimonb #define POW_OP_SUBDID_NULL_RD 4 509f693c922Shikaru #define POW_NULL_RD_LOAD_39_3 UINT64_C(0x000000fffffffff8) 510f693c922Shikaru #define POW_NULL_RD_LOAD_2_0 UINT64_C(0x0000000000000007) 511f693c922Shikaru 512f693c922Shikaru #define POW_NULL_RD_LOAD_RESULT_63_2 UINT64_C(0xfffffffffffffffc) 513f693c922Shikaru #define POW_NULL_RD_LOAD_RESULT_STATUS UINT64_C(0x0000000000000003) 514f693c922Shikaru 515b9fcd28bSsimonb /* -- pow iobdma operations */ 516b9fcd28bSsimonb 517b9fcd28bSsimonb #define POW_MAJOR_DID 0xc 518b9fcd28bSsimonb #define POW_IOBDMA_LEN 1 /* always 1 for POW */ 519b9fcd28bSsimonb 520b9fcd28bSsimonb /* pow iobdma get work */ 521b9fcd28bSsimonb #define POW_IOBDMA_SUBDID_GET_WORK POW_OP_SUBDID_GET_WORK 522b9fcd28bSsimonb #define POW_IOBDMA_GET_WORK_WAIT UINT64_C(0x0000000000000008) 523b9fcd28bSsimonb 524b9fcd28bSsimonb #define POW_IOBDMA_GET_WORK_RESULT_NO_WORK UINT64_C(0x8000000000000000) 525b9fcd28bSsimonb #define POW_IOBDMA_GET_WORK_RESULT_ADDR UINT64_C(0x000000ffffffffff) 526b9fcd28bSsimonb 527b9fcd28bSsimonb /* pow iobdma null rd */ 528b9fcd28bSsimonb #define POW_IOBDMA_SUBDID_NULL_RD POW_OP_SUBDID_NULL_RD 529b9fcd28bSsimonb #define POW_IOBDMA_NULL_RD_RESULT_STATUS UINT64_C(0x0000000000000003) 530b9fcd28bSsimonb 531b9fcd28bSsimonb /* -- pow store operations */ 532f693c922Shikaru /* pow store operations */ 533b9fcd28bSsimonb #define POW_STORE_SUBDID_SWTAG_FULL 0 534b9fcd28bSsimonb #define POW_STORE_SUBDID_DESCHED 3 535b9fcd28bSsimonb #define POW_STORE_SUBDID_OTHER 1 536f693c922Shikaru 537f693c922Shikaru #define POW_PHY_ADDR_STORE_ADDR UINT64_C(0x0000000fffffffff) 538f693c922Shikaru 539f693c922Shikaru #define POW_STORE_DATA_NO_SCHED UINT64_C(0x8000000000000000) 540f693c922Shikaru #define POW_STORE_DATA_62_61 UINT64_C(0x6000000000000000) 541f693c922Shikaru #define POW_STORE_DATA_INDEX UINT64_C(0x1fff000000000000) 542f693c922Shikaru #define POW_STORE_DATA_OP UINT64_C(0x0000f00000000000) 543f693c922Shikaru #define POW_STORE_DATA_43_42 UINT64_C(0x00000c0000000000) 544f693c922Shikaru #define POW_STORE_DATA_QOS UINT64_C(0x0000038000000000) 545f693c922Shikaru #define POW_STORE_DATA_GRP UINT64_C(0x0000007800000000) 546f693c922Shikaru #define POW_STORE_DATA_TYPE UINT64_C(0x0000000700000000) 547f693c922Shikaru #define POW_STORE_DATA_TAG UINT64_C(0x00000000ffffffff) 548f693c922Shikaru 549f693c922Shikaru /* ------------------------------------------------------------------------- */ 550f693c922Shikaru 551f693c922Shikaru /* Work Queue Entry */ 552f693c922Shikaru 553f693c922Shikaru #define POW_WQE_WORD0_XXX_63_40 UINT64_C(0xffffff0000000000) 554f693c922Shikaru #define POW_WQE_WORD0_NEXT UINT64_C(0x000000ffffffffff) 555f693c922Shikaru 556f693c922Shikaru #define POW_WQE_WORD1_XXX_63_42 UINT64_C(0xfffffc0000000000) 557f693c922Shikaru #define POW_WQE_WORD1_QOS UINT64_C(0x0000038000000000) 558f693c922Shikaru #define POW_WQE_WORD1_GRP UINT64_C(0x0000007800000000) 559f693c922Shikaru #define POW_WQE_WORD1_TT UINT64_C(0x0000000700000000) 560f693c922Shikaru #define POW_WQE_WORD1_TAG UINT64_C(0x00000000ffffffff) 561f693c922Shikaru 562f693c922Shikaru /* ------------------------------------------------------------------------- */ 563f693c922Shikaru 564f693c922Shikaru #endif /* _OCTEON_POWREG_H_ */ 565