| 1 | /*- |
| 2 | * SPDX-License-Identifier: BSD-2-Clause |
| 3 | * |
| 4 | * Copyright (c) 2021 ARM Ltd |
| 5 | * |
| 6 | * Redistribution and use in source and binary forms, with or without |
| 7 | * modification, are permitted provided that the following conditions |
| 8 | * are met: |
| 9 | * 1. Redistributions of source code must retain the above copyright |
| 10 | * notice, this list of conditions and the following disclaimer. |
| 11 | * 2. Redistributions in binary form must reproduce the above copyright |
| 12 | * notice, this list of conditions and the following disclaimer in the |
| 13 | * documentation and/or other materials provided with the distribution. |
| 14 | * |
| 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| 16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| 17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| 18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
| 19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| 20 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
| 22 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 23 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 25 | * SUCH DAMAGE. |
| 26 | */ |
| 27 | |
| 28 | #ifndef	_MACHINE_CMN600_REG_H_ |
| 29 | #define	_MACHINE_CMN600_REG_H_ |
| 30 | |
| 31 | #define	CMN600_COUNTERS_N		8 |
| 32 | #define	CMN600_UNIT_MAX			4 |
| 33 | #define	CMN600_PMU_DEFAULT_UNITS_N	2 |
| 34 | #define	CMN600_COMMON_PMU_EVENT_SEL	0x2000	/* rw */ |
| 35 | #define		CMN600_COMMON_PMU_EVENT_SEL_OCC_SHIFT	32 |
| 36 | #define		CMN600_COMMON_PMU_EVENT_SEL_OCC_MASK	(0x7UL << 32) |
| 37 | |
| 38 | struct cmn600_pmc { |
| 39 | 	void	*arg; |
| 40 | 	int	domain; |
| 41 | }; |
| 42 | |
| 43 | int cmn600_pmc_nunits(void); |
| 44 | int cmn600_pmc_getunit(int unit, void **arg, int *domain); |
| 45 | |
| 46 | int cmn600_pmu_intr_cb(void *arg, int (*handler)(struct trapframe *tf, |
| 47 | int unit, int i)); |
| 48 | |
| 49 | int pmu_cmn600_alloc_localpmc(void *arg, int nodeid, int node_type, |
| 50 | int *local_counter); |
| 51 | int pmu_cmn600_free_localpmc(void *arg, int nodeid, int node_type, |
| 52 | int local_counter); |
| 53 | int pmu_cmn600_rev(void *arg); |
| 54 | uint32_t pmu_cmn600_rd4(void *arg, int nodeid, int node_type, off_t reg); |
| 55 | int pmu_cmn600_wr4(void *arg, int nodeid, int node_type, off_t reg, |
| 56 | uint32_t val); |
| 57 | uint64_t pmu_cmn600_rd8(void *arg, int nodeid, int node_type, off_t reg); |
| 58 | int pmu_cmn600_wr8(void *arg, int nodeid, int node_type, off_t reg, |
| 59 | uint64_t val); |
| 60 | int pmu_cmn600_set8(void *arg, int nodeid, int node_type, off_t reg, |
| 61 | uint64_t val); |
| 62 | int pmu_cmn600_clr8(void *arg, int nodeid, int node_type, off_t reg, |
| 63 | uint64_t val); |
| 64 | int pmu_cmn600_md8(void *arg, int nodeid, int node_type, off_t reg, |
| 65 | uint64_t mask, uint64_t val); |
| 66 | |
| 67 | /* Configuration master registers */ |
| 68 | #define	POR_CFGM_NODE_INFO			0x0000	/* ro */ |
| 69 | #define		POR_CFGM_NODE_INFO_LOGICAL_ID_MASK	0xffff00000000UL |
| 70 | #define		POR_CFGM_NODE_INFO_LOGICAL_ID_SHIFT	32 |
| 71 | #define		POR_CFGM_NODE_INFO_NODE_ID_MASK		0xffff0000 |
| 72 | #define		POR_CFGM_NODE_INFO_NODE_ID_SHIFT	16 |
| 73 | #define		POR_CFGM_NODE_INFO_NODE_TYPE_MASK	0xffff |
| 74 | #define		POR_CFGM_NODE_INFO_NODE_TYPE_SHIFT	0 |
| 75 | |
| 76 | #define		NODE_ID_SUB_MASK		0x3 |
| 77 | #define		NODE_ID_SUB_SHIFT		0 |
| 78 | #define		NODE_ID_PORT_MASK		0x4 |
| 79 | #define		NODE_ID_PORT_SHIFT		2 |
| 80 | #define		NODE_ID_X2B_MASK		(0x3 << 3) |
| 81 | #define		NODE_ID_X2B_SHIFT		3 |
| 82 | #define		NODE_ID_Y2B_MASK		(0x3 << 5) |
| 83 | #define		NODE_ID_Y2B_SHIFT		5 |
| 84 | #define		NODE_ID_X3B_MASK		(0x7 << 3) |
| 85 | #define		NODE_ID_X3B_SHIFT		3 |
| 86 | #define		NODE_ID_Y3B_MASK		(0x7 << 6) |
| 87 | #define		NODE_ID_Y3B_SHIFT		6 |
| 88 | |
| 89 | #define	NODE_TYPE_INVALID	0x000 |
| 90 | #define	NODE_TYPE_DVM		0x001 |
| 91 | #define	NODE_TYPE_CFG		0x002 |
| 92 | #define	NODE_TYPE_DTC		0x003 |
| 93 | #define	NODE_TYPE_HN_I		0x004 |
| 94 | #define	NODE_TYPE_HN_F		0x005 |
| 95 | #define	NODE_TYPE_XP		0x006 |
| 96 | #define	NODE_TYPE_SBSX		0x007 |
| 97 | #define	NODE_TYPE_RN_I		0x00A |
| 98 | #define	NODE_TYPE_RN_D		0x00D |
| 99 | #define	NODE_TYPE_RN_SAM	0x00F |
| 100 | #define	NODE_TYPE_CXRA		0x100 |
| 101 | #define	NODE_TYPE_CXHA		0x101 |
| 102 | #define	NODE_TYPE_CXLA		0x102 |
| 103 | |
| 104 | #define	POR_CFGM_PERIPH_ID_0_PERIPH_ID_1	0x0008	/* ro */ |
| 105 | #define	POR_CFGM_PERIPH_ID_2_PERIPH_ID_3	0x0010	/* ro */ |
| 106 | #define		POR_CFGM_PERIPH_ID_2_REV_SHIFT			4 |
| 107 | #define		POR_CFGM_PERIPH_ID_2_REV_MASK			0xf0 |
| 108 | #define		POR_CFGM_PERIPH_ID_2_REV_R1P0			0 |
| 109 | #define		POR_CFGM_PERIPH_ID_2_REV_R1P1			1 |
| 110 | #define		POR_CFGM_PERIPH_ID_2_REV_R1P2			2 |
| 111 | #define		POR_CFGM_PERIPH_ID_2_REV_R1P3			3 |
| 112 | #define		POR_CFGM_PERIPH_ID_2_REV_R2P0			4 |
| 113 | #define	POR_CFGM_PERIPH_ID_4_PERIPH_ID_5	0x0018	/* ro */ |
| 114 | #define	POR_CFGM_PERIPH_ID_6_PERIPH_ID_7	0x0020	/* ro */ |
| 115 | #define	POR_CFGM_PERIPH_ID_32(x)		(0x0008 + ((x) * 4)) /* ro 32 */ |
| 116 | #define	POR_CFGM_COMPONENT_ID_0_COMPONENT_ID_1	0x0028	/* ro */ |
| 117 | #define	POR_CFGM_COMPONENT_ID_2_COMPONENT_ID_3	0x0030	/* ro */ |
| 118 | #define	POR_CFGM_CHILD_INFO			0x0080	/* ro */ |
| 119 | #define		POR_CFGM_CHILD_INFO_CHILD_PTR_OFFSET_MASK	0xffff0000 |
| 120 | #define		POR_CFGM_CHILD_INFO_CHILD_PTR_OFFSET_SHIFT	16 |
| 121 | #define		POR_CFGM_CHILD_INFO_CHILD_COUNT_MASK		0x0000ffff |
| 122 | #define		POR_CFGM_CHILD_INFO_CHILD_COUNT_SHIFT		0 |
| 123 | #define	POR_CFGM_SECURE_ACCESS			0x0980	/* rw */ |
| 124 | #define	POR_CFGM_ERRGSR0			0x3000	/* ro */ |
| 125 | #define	POR_CFGM_ERRGSR1			0x3008	/* ro */ |
| 126 | #define	POR_CFGM_ERRGSR2			0x3010	/* ro */ |
| 127 | #define	POR_CFGM_ERRGSR3			0x3018	/* ro */ |
| 128 | #define	POR_CFGM_ERRGSR4			0x3020	/* ro */ |
| 129 | #define	POR_CFGM_ERRGSR5			0x3080	/* ro */ |
| 130 | #define	POR_CFGM_ERRGSR6			0x3088	/* ro */ |
| 131 | #define	POR_CFGM_ERRGSR7			0x3090	/* ro */ |
| 132 | #define	POR_CFGM_ERRGSR8			0x3098	/* ro */ |
| 133 | #define	POR_CFGM_ERRGSR9			0x30a0	/* ro */ |
| 134 | #define	POR_CFGM_ERRGSR(x)			(0x3000 + ((x) * 8)) /* ro */ |
| 135 | #define	POR_CFGM_ERRGSR0_ns			0x3100	/* ro */ |
| 136 | #define	POR_CFGM_ERRGSR1_ns			0x3108	/* ro */ |
| 137 | #define	POR_CFGM_ERRGSR2_ns			0x3110	/* ro */ |
| 138 | #define	POR_CFGM_ERRGSR3_ns			0x3118	/* ro */ |
| 139 | #define	POR_CFGM_ERRGSR4_ns			0x3120	/* ro */ |
| 140 | #define	POR_CFGM_ERRGSR5_ns			0x3180	/* ro */ |
| 141 | #define	POR_CFGM_ERRGSR6_ns			0x3188	/* ro */ |
| 142 | #define	POR_CFGM_ERRGSR7_ns			0x3190	/* ro */ |
| 143 | #define	POR_CFGM_ERRGSR8_ns			0x3198	/* ro */ |
| 144 | #define	POR_CFGM_ERRGSR9_ns			0x31a0	/* ro */ |
| 145 | #define	POR_CFGM_ERRGSR_ns(x)			(0x3100 + ((x) * 8)) /* ro */ |
| 146 | #define	POR_CFGM_ERRDEVAFF			0x3fa8	/* ro */ |
| 147 | #define	POR_CFGM_ERRDEVARCH			0x3fb8	/* ro */ |
| 148 | #define	POR_CFGM_ERRIDR				0x3fc8	/* ro */ |
| 149 | #define	POR_CFGM_ERRPIDR45			0x3fd0	/* ro */ |
| 150 | #define	POR_CFGM_ERRPIDR67			0x3fd8	/* ro */ |
| 151 | #define	POR_CFGM_ERRPIDR01			0x3fe0	/* ro */ |
| 152 | #define	POR_CFGM_ERRPIDR23			0x3fe8	/* ro */ |
| 153 | #define	POR_CFGM_ERRCIDR01			0x3ff0	/* ro */ |
| 154 | #define	POR_CFGM_ERRCIDR23			0x3ff8	/* ro */ |
| 155 | #define	POR_INFO_GLOBAL				0x0900	/* ro */ |
| 156 | #define		POR_INFO_GLOBAL_CHIC_MODE_EN			(1UL << 49) /* CHI-C mode enable */ |
| 157 | #define		POR_INFO_GLOBAL_R2_ENABLE			(1UL << 48) /* CMN R2 feature enable */ |
| 158 | #define		POR_INFO_GLOBAL_RNSAM_NUM_ADD_HASHED_TGT_SHIFT	36 /* Number of additional hashed target ID's supported by the RN SAM, beyond the local HNF count */ |
| 159 | #define		POR_INFO_GLOBAL_RNSAM_NUM_ADD_HASHED_TGT_MASK	(0x3fUL << 36) |
| 160 | #define		POR_INFO_GLOBAL_NUM_REMOTE_RNF_SHIFT		28 /* Number of remote RN-F devices in the system when the CML feature is enabled */ |
| 161 | #define		POR_INFO_GLOBAL_NUM_REMOTE_RNF_MASK		(0xffUL << 28) |
| 162 | #define		POR_INFO_GLOBAL_FLIT_PARITY_EN			(1 << 25) /* Indicates whether parity checking is enabled in the transport layer on all flits sent on the interconnect */ |
| 163 | #define		POR_INFO_GLOBAL_DATACHECK_EN			(1 << 24) /* Indicates whether datacheck feature is enabled for CHI DAT flit */ |
| 164 | #define		POR_INFO_GLOBAL_PHYSICAL_ADDRESS_WIDTH_SHIFT	16 /* Physical address width */ |
| 165 | #define		POR_INFO_GLOBAL_PHYSICAL_ADDRESS_WIDTH_MASK	(0xff << 16) |
| 166 | #define		POR_INFO_GLOBAL_CHI_REQ_ADDR_WIDTH_SHIFT	8 /* REQ address width */ |
| 167 | #define		POR_INFO_GLOBAL_CHI_REQ_ADDR_WIDTH_MASK		(0xff << 8) |
| 168 | #define		POR_INFO_GLOBAL_CHI_REQ_RSVDC_WIDTH_SHIFT	0 /* RSVDC field width in CHI REQ flit */ |
| 169 | #define		POR_INFO_GLOBAL_CHI_REQ_RSVDC_WIDTH_MASK	0xff |
| 170 | |
| 171 | #define	POR_PPU_INT_ENABLE			0x1000	/* rw */ |
| 172 | #define	POR_PPU_INT_STATUS			0x1008	/* w1c */ |
| 173 | #define	POR_PPU_QACTIVE_HYST			0x1010	/* rw */ |
| 174 | #define	POR_CFGM_CHILD_POINTER_0		0x0100	/* ro */ |
| 175 | #define	POR_CFGM_CHILD_POINTER(x)	(POR_CFGM_CHILD_POINTER_0 + ((x) * 8)) |
| 176 | #define		POR_CFGM_CHILD_POINTER_EXT	(1 << 31) |
| 177 | #define		POR_CFGM_CHILD_POINTER_BASE_MASK 0x0fffffffUL |
| 178 | |
| 179 | /* DN registers */ |
| 180 | #define	POR_DN_NODE_INFO			0x0000	/* ro */ |
| 181 | #define	POR_DN_CHILD_INFO			0x0080	/* ro */ |
| 182 | #define	POR_DN_BUILD_INFO			0x0900	/* ro */ |
| 183 | #define	POR_DN_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 184 | #define	POR_DN_AUX_CTL				0x0a00	/* rw */ |
| 185 | #define	POR_DN_VMF0_CTRL			0x0c00	/* rw */ |
| 186 | #define	POR_DN_VMF0_RNF0			0x0c08	/* rw */ |
| 187 | #define	POR_DN_VMF0_RND				0x0c10	/* rw */ |
| 188 | #define	POR_DN_VMF0_CXRA			0x0c18	/* rw */ |
| 189 | #define	POR_DN_VMF1_CTRL			0x0c20	/* rw */ |
| 190 | #define	POR_DN_VMF1_RNF0			0x0c28	/* rw */ |
| 191 | #define	POR_DN_VMF1_RND				0x0c30	/* rw */ |
| 192 | #define	POR_DN_VMF1_CXRA			0x0c38	/* rw */ |
| 193 | #define	POR_DN_VMF2_CTRL			0x0c40	/* rw */ |
| 194 | #define	POR_DN_VMF2_RNF0			0x0c48	/* rw */ |
| 195 | #define	POR_DN_VMF2_RND				0x0c50	/* rw */ |
| 196 | #define	POR_DN_VMF2_CXRA			0x0c58	/* rw */ |
| 197 | #define	POR_DN_VMF3_CTRL			0x0c60	/* rw */ |
| 198 | #define	POR_DN_VMF3_RNF0			0x0c68	/* rw */ |
| 199 | #define	POR_DN_VMF3_RND				0x0c70	/* rw */ |
| 200 | #define	POR_DN_VMF3_CXRA			0x0c78	/* rw */ |
| 201 | #define	POR_DN_VMF4_CTRL			0x0c80	/* rw */ |
| 202 | #define	POR_DN_VMF4_RNF0			0x0c88	/* rw */ |
| 203 | #define	POR_DN_VMF4_RND				0x0c90	/* rw */ |
| 204 | #define	POR_DN_VMF4_CXRA			0x0c98	/* rw */ |
| 205 | #define	POR_DN_VMF5_CTRL			0x0ca0	/* rw */ |
| 206 | #define	POR_DN_VMF5_RNF0			0x0ca8	/* rw */ |
| 207 | #define	POR_DN_VMF5_RND				0x0cb0	/* rw */ |
| 208 | #define	POR_DN_VMF5_CXRA			0x0cb8	/* rw */ |
| 209 | #define	POR_DN_VMF6_CTRL			0x0cc0	/* rw */ |
| 210 | #define	POR_DN_VMF6_RNF0			0x0cc8	/* rw */ |
| 211 | #define	POR_DN_VMF6_RND				0x0cd0	/* rw */ |
| 212 | #define	POR_DN_VMF6_CXRA			0x0cd8	/* rw */ |
| 213 | #define	POR_DN_VMF7_CTRL			0x0ce0	/* rw */ |
| 214 | #define	POR_DN_VMF7_RNF0			0x0ce8	/* rw */ |
| 215 | #define	POR_DN_VMF7_RND				0x0cf0	/* rw */ |
| 216 | #define	POR_DN_VMF7_CXRA			0x0cf8	/* rw */ |
| 217 | #define	POR_DN_VMF8_CTRL			0x0d00	/* rw */ |
| 218 | #define	POR_DN_VMF8_RNF0			0x0d08	/* rw */ |
| 219 | #define	POR_DN_VMF8_RND				0x0d10	/* rw */ |
| 220 | #define	POR_DN_VMF8_CXRA			0x0d18	/* rw */ |
| 221 | #define	POR_DN_VMF9_CTRL			0x0d20	/* rw */ |
| 222 | #define	POR_DN_VMF9_RNF0			0x0d28	/* rw */ |
| 223 | #define	POR_DN_VMF9_RND				0x0d30	/* rw */ |
| 224 | #define	POR_DN_VMF9_CXRA			0x0d38	/* rw */ |
| 225 | #define	POR_DN_VMF10_CTRL			0x0d40	/* rw */ |
| 226 | #define	POR_DN_VMF10_RNF0			0x0d48	/* rw */ |
| 227 | #define	POR_DN_VMF10_RND			0x0d50	/* rw */ |
| 228 | #define	POR_DN_VMF10_CXRA			0x0d58	/* rw */ |
| 229 | #define	POR_DN_VMF11_CTRL			0x0d60	/* rw */ |
| 230 | #define	POR_DN_VMF11_RNF0			0x0d68	/* rw */ |
| 231 | #define	POR_DN_VMF11_RND			0x0d70	/* rw */ |
| 232 | #define	POR_DN_VMF11_CXRA			0x0d78	/* rw */ |
| 233 | #define	POR_DN_VMF12_CTRL			0x0d80	/* rw */ |
| 234 | #define	POR_DN_VMF12_RNF0			0x0d88	/* rw */ |
| 235 | #define	POR_DN_VMF12_RND			0x0d90	/* rw */ |
| 236 | #define	POR_DN_VMF12_CXRA			0x0d98	/* rw */ |
| 237 | #define	POR_DN_VMF13_CTRL			0x0da0	/* rw */ |
| 238 | #define	POR_DN_VMF13_RNF0			0x0da8	/* rw */ |
| 239 | #define	POR_DN_VMF13_RND			0x0db0	/* rw */ |
| 240 | #define	POR_DN_VMF13_CXRA			0x0db8	/* rw */ |
| 241 | #define	POR_DN_VMF14_CTRL			0x0dc0	/* rw */ |
| 242 | #define	POR_DN_VMF14_RNF0			0x0dc8	/* rw */ |
| 243 | #define	POR_DN_VMF14_RND			0x0dd0	/* rw */ |
| 244 | #define	POR_DN_VMF14_CXRA			0x0dd8	/* rw */ |
| 245 | #define	POR_DN_VMF15_CTRL			0x0de0	/* rw */ |
| 246 | #define	POR_DN_VMF15_RNF0			0x0de8	/* rw */ |
| 247 | #define	POR_DN_VMF15_RND			0x0df0	/* rw */ |
| 248 | #define	POR_DN_VMF15_CXRA			0x0df8	/* rw */ |
| 249 | #define	POR_DN_PMU_EVENT_SEL			0x2000	/* rw */ |
| 250 | #define		POR_DN_PMU_EVENT_SEL_OCCUP1_ID_SHIFT	32 |
| 251 | #define		POR_DN_PMU_EVENT_SEL_OCCUP1_ID_MASK	(0xf << 32) |
| 252 | #define		POR_DN_PMU_EVENT_SEL_OCCUP1_ID_ALL		0 |
| 253 | #define		POR_DN_PMU_EVENT_SEL_OCCUP1_ID_DVM_OPS		1 |
| 254 | #define		POR_DN_PMU_EVENT_SEL_OCCUP1_ID_DVM_SYNCS	2 |
| 255 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID3_SHIFT	24 |
| 256 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID3_MASK	(0x3f << 24) |
| 257 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID2_SHIFT	16 |
| 258 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID2_MASK	(0x3f << 16) |
| 259 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID1_SHIFT	8 |
| 260 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID1_MASK	(0x3f << 8) |
| 261 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID0_SHIFT	0 |
| 262 | #define		POR_DN_PMU_EVENT_SEL_EVENT_ID0_MASK	0x3f |
| 263 | |
| 264 | /* Debug and trace register */ |
| 265 | #define	POR_DT_NODE_INFO			0x0000	/* ro */ |
| 266 | #define	POR_DT_CHILD_INFO			0x0080	/* ro */ |
| 267 | #define	POR_DT_SECURE_ACCESS			0x0980	/* rw */ |
| 268 | #define	POR_DT_DTC_CTL				0x0a00	/* rw */ |
| 269 | #define		POR_DT_DTC_CTL_DT_EN			(1 << 0) |
| 270 | #define	POR_DT_TRIGGER_STATUS			0x0a10	/* ro */ |
| 271 | #define	POR_DT_TRIGGER_STATUS_CLR		0x0a20	/* wo */ |
| 272 | #define	POR_DT_TRACE_CONTROL			0x0a30	/* rw */ |
| 273 | #define	POR_DT_TRACEID				0x0a48	/* rw */ |
| 274 | #define	POR_DT_PMEVCNTAB			0x2000	/* rw */ |
| 275 | #define	POR_DT_PMEVCNTCD			0x2010	/* rw */ |
| 276 | #define	POR_DT_PMEVCNTEF			0x2020	/* rw */ |
| 277 | #define	POR_DT_PMEVCNTGH			0x2030	/* rw */ |
| 278 | #define	POR_DT_PMEVCNT(x)			(0x2000 + ((x) * 0x10)) |
| 279 | #define		POR_DT_PMEVCNT_EVENCNT_SHIFT	0 |
| 280 | #define		POR_DT_PMEVCNT_ODDCNT_SHIFT	32 |
| 281 | #define	POR_DT_PMCCNTR				0x2040	/* rw */ |
| 282 | #define	POR_DT_PMEVCNTSRAB			0x2050	/* rw */ |
| 283 | #define	POR_DT_PMEVCNTSRCD			0x2060	/* rw */ |
| 284 | #define	POR_DT_PMEVCNTSREF			0x2070	/* rw */ |
| 285 | #define	POR_DT_PMEVCNTSRGH			0x2080	/* rw */ |
| 286 | #define	POR_DT_PMCCNTRSR			0x2090	/* rw */ |
| 287 | #define	POR_DT_PMCR				0x2100	/* rw */ |
| 288 | #define		POR_DT_PMCR_OVFL_INTR_EN		(1 << 6) |
| 289 | #define		POR_DT_PMCR_CNTR_RST			(1 << 5) |
| 290 | #define		POR_DT_PMCR_CNTCFG_SHIFT		1 |
| 291 | #define		POR_DT_PMCR_CNTCFG_MASK			(0xf << POR_DT_PMCR_CNTCFG_SHIFT) |
| 292 | #define		POR_DT_PMCR_PMU_EN			(1 << 0) |
| 293 | #define	POR_DT_PMOVSR				0x2118	/* ro */ |
| 294 | #define	POR_DT_PMOVSR_CLR			0x2120	/* wo */ |
| 295 | #define		POR_DT_PMOVSR_EVENT_COUNTERS	0xffUL |
| 296 | #define		POR_DT_PMOVSR_CYCLE_COUNTER		0x100UL |
| 297 | #define		POR_DT_PMOVSR_ALL			\ |
| 298 | (POR_DT_PMOVSR_EVENT_COUNTERS | POR_DT_PMOVSR_CYCLE_COUNTER) |
| 299 | #define	POR_DT_PMSSR				0x2128	/* ro */ |
| 300 | #define	POR_DT_PMSRR				0x2130	/* wo */ |
| 301 | #define	POR_DT_CLAIM				0x2da0	/* rw */ |
| 302 | #define	POR_DT_DEVAFF				0x2da8	/* ro */ |
| 303 | #define	POR_DT_LSR				0x2db0	/* ro */ |
| 304 | #define	POR_DT_AUTHSTATUS_DEVARCH		0x2db8	/* ro */ |
| 305 | #define	POR_DT_DEVID				0x2dc0	/* ro */ |
| 306 | #define	POR_DT_DEVTYPE				0x2dc8	/* ro */ |
| 307 | #define	POR_DT_PIDR45				0x2dd0	/* ro */ |
| 308 | #define	POR_DT_PIDR67				0x2dd8	/* ro */ |
| 309 | #define	POR_DT_PIDR01				0x2de0	/* ro */ |
| 310 | #define	POR_DT_PIDR23				0x2de8	/* ro */ |
| 311 | #define	POR_DT_CIDR01				0x2df0	/* ro */ |
| 312 | #define	POR_DT_CIDR23				0x2df8	/* ro */ |
| 313 | |
| 314 | /* HN-F registers */ |
| 315 | #define	POR_HNF_NODE_INFO			0x0000	/* ro */ |
| 316 | #define	POR_HNF_CHILD_INFO			0x0080	/* ro */ |
| 317 | #define	POR_HNF_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 318 | #define	POR_HNF_UNIT_INFO			0x0900	/* ro */ |
| 319 | #define	POR_HNF_CFG_CTL				0x0a00	/* rw */ |
| 320 | #define	POR_HNF_AUX_CTL				0x0a08	/* rw */ |
| 321 | #define	POR_HNF_R2_AUX_CTL			0x0a10	/* rw */ |
| 322 | #define	POR_HNF_PPU_PWPR			0x1000	/* rw */ |
| 323 | #define	POR_HNF_PPU_PWSR			0x1008	/* ro */ |
| 324 | #define	POR_HNF_PPU_MISR			0x1014	/* ro */ |
| 325 | #define	POR_HNF_PPU_IDR0			0x1fb0	/* ro */ |
| 326 | #define	POR_HNF_PPU_IDR1			0x1fb4	/* ro */ |
| 327 | #define	POR_HNF_PPU_IIDR			0x1fc8	/* ro */ |
| 328 | #define	POR_HNF_PPU_AIDR			0x1fcc	/* ro */ |
| 329 | #define	POR_HNF_PPU_DYN_RET_THRESHOLD		0x1100	/* rw */ |
| 330 | #define	POR_HNF_QOS_BAND			0x0a80	/* ro */ |
| 331 | #define	POR_HNF_QOS_RESERVATION			0x0a88	/* rw */ |
| 332 | #define	POR_HNF_RN_STARVATION			0x0a90	/* rw */ |
| 333 | #define	POR_HNF_ERRFR				0x3000	/* ro */ |
| 334 | #define	POR_HNF_ERRCTLR				0x3008	/* rw */ |
| 335 | #define	POR_HNF_ERRSTATUS			0x3010	/* w1c */ |
| 336 | #define	POR_HNF_ERRADDR				0x3018	/* rw */ |
| 337 | #define	POR_HNF_ERRMISC				0x3020	/* rw */ |
| 338 | #define	POR_HNF_ERR_INJ				0x3030	/* rw */ |
| 339 | #define	POR_HNF_BYTE_PAR_ERR_INJ		0x3038	/* wo */ |
| 340 | #define	POR_HNF_ERRFR_NS			0x3100	/* ro */ |
| 341 | #define	POR_HNF_ERRCTLR_NS			0x3108	/* rw */ |
| 342 | #define	POR_HNF_ERRSTATUS_NS			0x3110	/* w1c */ |
| 343 | #define	POR_HNF_ERRADDR_NS			0x3118	/* rw */ |
| 344 | #define	POR_HNF_ERRMISC_NS			0x3120	/* rw */ |
| 345 | #define	POR_HNF_SLC_LOCK_WAYS			0x0c00	/* rw */ |
| 346 | #define	POR_HNF_SLC_LOCK_BASE0			0x0c08	/* rw */ |
| 347 | #define	POR_HNF_SLC_LOCK_BASE1			0x0c10	/* rw */ |
| 348 | #define	POR_HNF_SLC_LOCK_BASE2			0x0c18	/* rw */ |
| 349 | #define	POR_HNF_SLC_LOCK_BASE3			0x0c20	/* rw */ |
| 350 | #define	POR_HNF_RNF_REGION_VEC1			0x0c28	/* rw */ |
| 351 | #define	POR_HNF_RNI_REGION_VEC			0x0c30	/* rw */ |
| 352 | #define	POR_HNF_RNF_REGION_VEC			0x0c38	/* rw */ |
| 353 | #define	POR_HNF_RND_REGION_VEC			0x0c40	/* rw */ |
| 354 | #define	POR_HNF_SLCWAY_PARTITION0_RNF_VEC	0x0c48	/* rw */ |
| 355 | #define	POR_HNF_SLCWAY_PARTITION1_RNF_VEC	0x0c50	/* rw */ |
| 356 | #define	POR_HNF_SLCWAY_PARTITION2_RNF_VEC	0x0c58	/* rw */ |
| 357 | #define	POR_HNF_SLCWAY_PARTITION3_RNF_VEC	0x0c60	/* rw */ |
| 358 | #define	POR_HNF_SLCWAY_PARTITION0_RNF_VEC1	0x0cb0	/* rw */ |
| 359 | #define	POR_HNF_SLCWAY_PARTITION1_RNF_VEC1	0x0cb8	/* rw */ |
| 360 | #define	POR_HNF_SLCWAY_PARTITION2_RNF_VEC1	0x0cc0	/* rw */ |
| 361 | #define	POR_HNF_SLCWAY_PARTITION3_RNF_VEC1	0x0cc8	/* rw */ |
| 362 | #define	POR_HNF_SLCWAY_PARTITION0_RNI_VEC	0x0c68	/* rw */ |
| 363 | #define	POR_HNF_SLCWAY_PARTITION1_RNI_VEC	0x0c70	/* rw */ |
| 364 | #define	POR_HNF_SLCWAY_PARTITION2_RNI_VEC	0x0c78	/* rw */ |
| 365 | #define	POR_HNF_SLCWAY_PARTITION3_RNI_VEC	0x0c80	/* rw */ |
| 366 | #define	POR_HNF_SLCWAY_PARTITION0_RND_VEC	0x0c88	/* rw */ |
| 367 | #define	POR_HNF_SLCWAY_PARTITION1_RND_VEC	0x0c90	/* rw */ |
| 368 | #define	POR_HNF_SLCWAY_PARTITION2_RND_VEC	0x0c98	/* rw */ |
| 369 | #define	POR_HNF_SLCWAY_PARTITION3_RND_VEC	0x0ca0	/* rw */ |
| 370 | #define	POR_HNF_RN_REGION_LOCK			0x0ca8	/* rw */ |
| 371 | #define	POR_HNF_SAM_CONTROL			0x0d00	/* rw */ |
| 372 | #define	POR_HNF_SAM_MEMREGION0			0x0d08	/* rw */ |
| 373 | #define	POR_HNF_SAM_MEMREGION1			0x0d10	/* rw */ |
| 374 | #define	POR_HNF_SAM_SN_PROPERTIES		0x0d18	/* rw */ |
| 375 | #define	POR_HNF_SAM_6SN_NODEID			0x0d20	/* rw */ |
| 376 | #define	POR_HNF_RN_PHYS_ID(x)			(0x0d28 + 8 * (x)) /* rw */ |
| 377 | #define	POR_HNF_RN_PHYS_ID63			0x0f90	/* rw */ |
| 378 | #define	POR_HNF_SF_CXG_BLOCKED_WAYS		0x0f00	/* rw */ |
| 379 | #define	POR_HNF_CML_PORT_AGGR_GRP0_ADD_MASK	0x0f10	/* rw */ |
| 380 | #define	POR_HNF_CML_PORT_AGGR_GRP1_ADD_MASK	0x0f18	/* rw */ |
| 381 | #define	POR_HNF_CML_PORT_AGGR_GRP0_REG		0x0f28	/* rw */ |
| 382 | #define	POR_HNF_CML_PORT_AGGR_GRP1_REG		0x0f30	/* rw */ |
| 383 | #define	HN_SAM_HASH_ADDR_MASK_REG		0x0f40	/* rw */ |
| 384 | #define	HN_SAM_REGION_CMP_ADDR_MASK_REG		0x0f48	/* rw */ |
| 385 | #define	POR_HNF_ABF_LO_ADDR			0x0f50	/* rw */ |
| 386 | #define	POR_HNF_ABF_HI_ADDR			0x0f58	/* rw */ |
| 387 | #define	POR_HNF_ABF_PR				0x0f60	/* rw */ |
| 388 | #define	POR_HNF_ABF_SR				0x0f68	/* ro */ |
| 389 | #define	POR_HNF_LDID_MAP_TABLE_REG0		0x0f98	/* rw */ |
| 390 | #define	POR_HNF_LDID_MAP_TABLE_REG1		0x0fa0	/* rw */ |
| 391 | #define	POR_HNF_LDID_MAP_TABLE_REG2		0x0fa8	/* rw */ |
| 392 | #define	POR_HNF_LDID_MAP_TABLE_REG3		0x0fb0	/* rw */ |
| 393 | #define	POR_HNF_CFG_SLCSF_DBGRD			0x0b80	/* wo */ |
| 394 | #define	POR_HNF_SLC_CACHE_ACCESS_SLC_TAG	0x0b88	/* ro */ |
| 395 | #define	POR_HNF_SLC_CACHE_ACCESS_SLC_DATA	0x0b90	/* ro */ |
| 396 | #define	POR_HNF_SLC_CACHE_ACCESS_SF_TAG		0x0b98	/* ro */ |
| 397 | #define	POR_HNF_SLC_CACHE_ACCESS_SF_TAG1	0x0ba0	/* ro */ |
| 398 | #define	POR_HNF_SLC_CACHE_ACCESS_SF_TAG2	0x0ba8	/* ro */ |
| 399 | #define	POR_HNF_PMU_EVENT_SEL			0x2000	/* rw */ |
| 400 | |
| 401 | /* HN-I registers */ |
| 402 | #define	POR_HNI_NODE_INFO			0x0000	/* ro */ |
| 403 | #define	POR_HNI_CHILD_INFO			0x0080	/* ro */ |
| 404 | #define	POR_HNI_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 405 | #define	POR_HNI_UNIT_INFO			0x0900	/* ro */ |
| 406 | #define	POR_HNI_SAM_ADDRREGION0_CFG		0x0c00	/* rw */ |
| 407 | #define	POR_HNI_SAM_ADDRREGION1_CFG		0x0c08	/* rw */ |
| 408 | #define	POR_HNI_SAM_ADDRREGION2_CFG		0x0c10	/* rw */ |
| 409 | #define	POR_HNI_SAM_ADDRREGION3_CFG		0x0c18	/* rw */ |
| 410 | #define	POR_HNI_CFG_CTL				0x0a00	/* rw */ |
| 411 | #define	POR_HNI_AUX_CTL				0x0a08	/* rw */ |
| 412 | #define	POR_HNI_ERRFR				0x3000	/* ro */ |
| 413 | #define	POR_HNI_ERRCTLR				0x3008	/* rw */ |
| 414 | #define	POR_HNI_ERRSTATUS			0x3010	/* w1c */ |
| 415 | #define	POR_HNI_ERRADDR				0x3018	/* rw */ |
| 416 | #define	POR_HNI_ERRMISC				0x3020	/* rw */ |
| 417 | #define	POR_HNI_ERRFR_NS			0x3100	/* ro */ |
| 418 | #define	POR_HNI_ERRCTLR_NS			0x3108	/* rw */ |
| 419 | #define	POR_HNI_ERRSTATUS_NS			0x3110	/* w1c */ |
| 420 | #define	POR_HNI_ERRADDR_NS			0x3118	/* rw */ |
| 421 | #define	POR_HNI_ERRMISC_NS			0x3120	/* rw */ |
| 422 | #define	POR_HNI_PMU_EVENT_SEL			0x2000	/* rw */ |
| 423 | |
| 424 | /* XP registers */ |
| 425 | #define	POR_MXP_NODE_INFO			0x0000	/* ro */ |
| 426 | #define	POR_MXP_DEVICE_PORT_CONNECT_INFO_P0	0x0008	/* ro */ |
| 427 | #define	POR_MXP_DEVICE_PORT_CONNECT_INFO_P1	0x0010	/* ro */ |
| 428 | #define	POR_MXP_MESH_PORT_CONNECT_INFO_EAST	0x0018	/* ro */ |
| 429 | #define	POR_MXP_MESH_PORT_CONNECT_INFO_NORTH	0x0020	/* ro */ |
| 430 | #define	POR_MXP_CHILD_INFO			0x0080	/* ro */ |
| 431 | #define	POR_MXP_CHILD_POINTER_0			0x0100	/* ro */ |
| 432 | #define	POR_MXP_CHILD_POINTER_1			0x0108	/* ro */ |
| 433 | #define	POR_MXP_CHILD_POINTER_2			0x0110	/* ro */ |
| 434 | #define	POR_MXP_CHILD_POINTER_3			0x0118	/* ro */ |
| 435 | #define	POR_MXP_CHILD_POINTER_4			0x0120	/* ro */ |
| 436 | #define	POR_MXP_CHILD_POINTER_5			0x0128	/* ro */ |
| 437 | #define	POR_MXP_CHILD_POINTER_6			0x0130	/* ro */ |
| 438 | #define	POR_MXP_CHILD_POINTER_7			0x0138	/* ro */ |
| 439 | #define	POR_MXP_CHILD_POINTER_8			0x0140	/* ro */ |
| 440 | #define	POR_MXP_CHILD_POINTER_9			0x0148	/* ro */ |
| 441 | #define	POR_MXP_CHILD_POINTER_10		0x0150	/* ro */ |
| 442 | #define	POR_MXP_CHILD_POINTER_11		0x0158	/* ro */ |
| 443 | #define	POR_MXP_CHILD_POINTER_12		0x0160	/* ro */ |
| 444 | #define	POR_MXP_CHILD_POINTER_13		0x0168	/* ro */ |
| 445 | #define	POR_MXP_CHILD_POINTER_14		0x0170	/* ro */ |
| 446 | #define	POR_MXP_CHILD_POINTER_15		0x0178	/* ro */ |
| 447 | #define	POR_MXP_P0_INFO				0x0900	/* ro */ |
| 448 | #define	POR_MXP_P1_INFO				0x0908	/* ro */ |
| 449 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_I			0x01 |
| 450 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_D			0x02 |
| 451 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_F_CHIB		0x04 |
| 452 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_F_CHIB_ESAM		0x05 |
| 453 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_F_CHIA		0x06 |
| 454 | #define		POR_MXP_PX_INFO_DEV_TYPE_RN_F_CHIA_ESAM		0x07 |
| 455 | #define		POR_MXP_PX_INFO_DEV_TYPE_HN_T			0x08 |
| 456 | #define		POR_MXP_PX_INFO_DEV_TYPE_HN_I			0x09 |
| 457 | #define		POR_MXP_PX_INFO_DEV_TYPE_HN_D			0x0a |
| 458 | #define		POR_MXP_PX_INFO_DEV_TYPE_SN_F			0x0c |
| 459 | #define		POR_MXP_PX_INFO_DEV_TYPE_SBSX			0x0d |
| 460 | #define		POR_MXP_PX_INFO_DEV_TYPE_HN_F			0x0e |
| 461 | #define		POR_MXP_PX_INFO_DEV_TYPE_CXHA			0x11 |
| 462 | #define		POR_MXP_PX_INFO_DEV_TYPE_CXRA			0x12 |
| 463 | #define		POR_MXP_PX_INFO_DEV_TYPE_CXRH			0x13 |
| 464 | |
| 465 | #define	POR_MXP_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 466 | #define	POR_MXP_AUX_CTL				0x0a00	/* rw */ |
| 467 | #define	POR_MXP_P0_QOS_CONTROL			0x0a80	/* rw */ |
| 468 | #define	POR_MXP_P0_QOS_LAT_TGT			0x0a88	/* rw */ |
| 469 | #define	POR_MXP_P0_QOS_LAT_SCALE		0x0a90	/* rw */ |
| 470 | #define	POR_MXP_P0_QOS_LAT_RANGE		0x0a98	/* rw */ |
| 471 | #define	POR_MXP_P1_QOS_CONTROL			0x0aa0	/* rw */ |
| 472 | #define	POR_MXP_P1_QOS_LAT_TGT			0x0aa8	/* rw */ |
| 473 | #define	POR_MXP_P1_QOS_LAT_SCALE		0x0ab0	/* rw */ |
| 474 | #define	POR_MXP_P1_QOS_LAT_RANGE		0x0ab8	/* rw */ |
| 475 | #define	POR_MXP_PMU_EVENT_SEL			0x2000	/* rw */ |
| 476 | |
| 477 | #define	POR_MXP_ERRFR				0x3000	/* ro */ |
| 478 | #define	POR_MXP_ERRCTLR				0x3008	/* rw */ |
| 479 | #define	POR_MXP_ERRSTATUS			0x3010	/* w1c */ |
| 480 | #define	POR_MXP_ERRMISC				0x3028	/* rw */ |
| 481 | #define	POR_MXP_P0_BYTE_PAR_ERR_INJ		0x3030	/* wo */ |
| 482 | #define	POR_MXP_P1_BYTE_PAR_ERR_INJ		0x3038	/* wo */ |
| 483 | #define	POR_MXP_ERRFR_NS			0x3100	/* ro */ |
| 484 | #define	POR_MXP_ERRCTLR_NS			0x3108	/* rw */ |
| 485 | #define	POR_MXP_ERRSTATUS_NS			0x3110	/* w1c */ |
| 486 | #define	POR_MXP_ERRMISC_NS			0x3128	/* rw */ |
| 487 | #define	POR_MXP_P0_SYSCOREQ_CTL			0x1000	/* rw */ |
| 488 | #define	POR_MXP_P1_SYSCOREQ_CTL			0x1008	/* rw */ |
| 489 | #define	POR_MXP_P0_SYSCOACK_STATUS		0x1010	/* ro */ |
| 490 | #define	POR_MXP_P1_SYSCOACK_STATUS		0x1018	/* ro */ |
| 491 | #define	POR_DTM_CONTROL				0x2100	/* rw */ |
| 492 | #define		POR_DTM_CONTROL_TRACE_NO_ATB		(1 << 3) |
| 493 | #define		POR_DTM_CONTROL_SAMPLE_PROFILE_ENABLE	(1 << 2) |
| 494 | #define		POR_DTM_CONTROL_TRACE_TAG_ENABLE	(1 << 1) |
| 495 | #define		POR_DTM_CONTROL_DTM_ENABLE		(1 << 0) |
| 496 | #define	POR_DTM_FIFO_ENTRY_READY		0x2118	/* w1c */ |
| 497 | #define	POR_DTM_FIFO_ENTRY0_0			0x2120	/* ro */ |
| 498 | #define	POR_DTM_FIFO_ENTRY0_1			0x2128	/* ro */ |
| 499 | #define	POR_DTM_FIFO_ENTRY0_2			0x2130	/* ro */ |
| 500 | #define	POR_DTM_FIFO_ENTRY1_0			0x2138	/* ro */ |
| 501 | #define	POR_DTM_FIFO_ENTRY1_1			0x2140	/* ro */ |
| 502 | #define	POR_DTM_FIFO_ENTRY1_2			0x2148	/* ro */ |
| 503 | #define	POR_DTM_FIFO_ENTRY2_0			0x2150	/* ro */ |
| 504 | #define	POR_DTM_FIFO_ENTRY2_1			0x2158	/* ro */ |
| 505 | #define	POR_DTM_FIFO_ENTRY2_2			0x2160	/* ro */ |
| 506 | #define	POR_DTM_FIFO_ENTRY3_0			0x2168	/* ro */ |
| 507 | #define	POR_DTM_FIFO_ENTRY3_1			0x2170	/* ro */ |
| 508 | #define	POR_DTM_FIFO_ENTRY3_2			0x2178	/* ro */ |
| 509 | #define	POR_DTM_WP0_CONFIG			0x21a0	/* rw */ |
| 510 | #define	POR_DTM_WP0_VAL				0x21a8	/* rw */ |
| 511 | #define	POR_DTM_WP0_MASK			0x21b0	/* rw */ |
| 512 | #define	POR_DTM_WP1_CONFIG			0x21b8	/* rw */ |
| 513 | #define	POR_DTM_WP1_VAL				0x21c0	/* rw */ |
| 514 | #define	POR_DTM_WP1_MASK			0x21c8	/* rw */ |
| 515 | #define	POR_DTM_WP2_CONFIG			0x21d0	/* rw */ |
| 516 | #define	POR_DTM_WP2_VAL				0x21d8	/* rw */ |
| 517 | #define	POR_DTM_WP2_MASK			0x21e0	/* rw */ |
| 518 | #define	POR_DTM_WP3_CONFIG			0x21e8	/* rw */ |
| 519 | #define	POR_DTM_WP3_VAL				0x21f0	/* rw */ |
| 520 | #define	POR_DTM_WP3_MASK			0x21f8	/* rw */ |
| 521 | #define	POR_DTM_PMSICR				0x2200	/* rw */ |
| 522 | #define	POR_DTM_PMSIRR				0x2208	/* rw */ |
| 523 | #define	POR_DTM_PMU_CONFIG			0x2210	/* rw */ |
| 524 | #define		POR_DTM_PMU_CONFIG_PMU_EN		(1 << 0) |
| 525 | #define		POR_DTM_PMU_CONFIG_VCNT_INPUT_SEL_SHIFT	32 |
| 526 | #define		POR_DTM_PMU_CONFIG_VCNT_INPUT_SEL_WIDTH	8 |
| 527 | #define	POR_DTM_PMEVCNT				0x2220	/* rw */ |
| 528 | #define		POR_DTM_PMEVCNT_CNTR_WIDTH	16 |
| 529 | #define	POR_DTM_PMEVCNTSR			0x2240	/* rw */ |
| 530 | |
| 531 | /* RN-D registers */ |
| 532 | #define	POR_RND_NODE_INFO			0x0000	/* ro */ |
| 533 | #define	POR_RND_CHILD_INFO			0x0080	/* ro */ |
| 534 | #define	POR_RND_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 535 | #define	POR_RND_UNIT_INFO			0x0900	/* ro */ |
| 536 | #define	POR_RND_CFG_CTL				0x0a00	/* rw */ |
| 537 | #define	POR_RND_AUX_CTL				0x0a08	/* rw */ |
| 538 | #define	POR_RND_S0_PORT_CONTROL			0x0a10	/* rw */ |
| 539 | #define	POR_RND_S1_PORT_CONTROL			0x0a18	/* rw */ |
| 540 | #define	POR_RND_S2_PORT_CONTROL			0x0a20	/* rw */ |
| 541 | #define	POR_RND_S0_QOS_CONTROL			0x0a80	/* rw */ |
| 542 | #define	POR_RND_S0_QOS_LAT_TGT			0x0a88	/* rw */ |
| 543 | #define	POR_RND_S0_QOS_LAT_SCALE		0x0a90	/* rw */ |
| 544 | #define	POR_RND_S0_QOS_LAT_RANGE		0x0a98	/* rw */ |
| 545 | #define	POR_RND_S1_QOS_CONTROL			0x0aa0	/* rw */ |
| 546 | #define	POR_RND_S1_QOS_LAT_TGT			0x0aa8	/* rw */ |
| 547 | #define	POR_RND_S1_QOS_LAT_SCALE		0x0ab0	/* rw */ |
| 548 | #define	POR_RND_S1_QOS_LAT_RANGE		0x0ab8	/* rw */ |
| 549 | #define	POR_RND_S2_QOS_CONTROL			0x0ac0	/* rw */ |
| 550 | #define	POR_RND_S2_QOS_LAT_TGT			0x0ac8	/* rw */ |
| 551 | #define	POR_RND_S2_QOS_LAT_SCALE		0x0ad0	/* rw */ |
| 552 | #define	POR_RND_S2_QOS_LAT_RANGE		0x0ad8	/* rw */ |
| 553 | #define	POR_RND_PMU_EVENT_SEL			0x2000	/* rw */ |
| 554 | #define	POR_RND_SYSCOREQ_CTL			0x1000	/* rw */ |
| 555 | #define	POR_RND_SYSCOACK_STATUS			0x1008	/* ro */ |
| 556 | |
| 557 | /* RN-I registers */ |
| 558 | #define	POR_RNI_NODE_INFO			0x0000	/* ro */ |
| 559 | #define	POR_RNI_CHILD_INFO			0x0080	/* ro */ |
| 560 | #define	POR_RNI_SECURE_REGISTER_GROUPS_OVERRIDE	0x0980	/* rw */ |
| 561 | #define	POR_RNI_UNIT_INFO			0x0900	/* ro */ |
| 562 | #define	POR_RNI_CFG_CTL				0x0a00	/* rw */ |
| 563 | #define	POR_RNI_AUX_CTL				0x0a08	/* rw */ |
| 564 | #define	POR_RNI_S0_PORT_CONTROL			0x0a10	/* rw */ |
| 565 | #define	POR_RNI_S1_PORT_CONTROL			0x0a18	/* rw */ |
| 566 | #define	POR_RNI_S2_PORT_CONTROL			0x0a20	/* rw */ |
| 567 | #define	POR_RNI_S0_QOS_CONTROL			0x0a80	/* rw */ |
| 568 | #define	POR_RNI_S0_QOS_LAT_TGT			0x0a88	/* rw */ |
| 569 | #define	POR_RNI_S0_QOS_LAT_SCALE		0x0a90	/* rw */ |
| 570 | #define	POR_RNI_S0_QOS_LAT_RANGE		0x0a98	/* rw */ |
| 571 | #define	POR_RNI_S1_QOS_CONTROL			0x0aa0	/* rw */ |
| 572 | #define	POR_RNI_S1_QOS_LAT_TGT			0x0aa8	/* rw */ |
| 573 | #define	POR_RNI_S1_QOS_LAT_SCALE		0x0ab0	/* rw */ |
| 574 | #define	POR_RNI_S1_QOS_LAT_RANGE		0x0ab8	/* rw */ |
| 575 | #define	POR_RNI_S2_QOS_CONTROL			0x0ac0	/* rw */ |
| 576 | #define	POR_RNI_S2_QOS_LAT_TGT			0x0ac8	/* rw */ |
| 577 | #define	POR_RNI_S2_QOS_LAT_SCALE		0x0ad0	/* rw */ |
| 578 | #define	POR_RNI_S2_QOS_LAT_RANGE		0x0ad8	/* rw */ |
| 579 | #define	POR_RNI_PMU_EVENT_SEL			0x2000	/* rw */ |
| 580 | |
| 581 | /* RN SAM registers */ |
| 582 | #define	POR_RNSAM_NODE_INFO			0x0000	/* ro */ |
| 583 | #define	POR_RNSAM_CHILD_INFO			0x0080	/* ro */ |
| 584 | #define	POR_RNSAM_SECURE_REGISTER_GROUPS_OVERRIDE 0x0980 /* rw */ |
| 585 | #define	POR_RNSAM_UNIT_INFO			0x0900	/* ro */ |
| 586 | #define	RNSAM_STATUS				0x0c00	/* rw */ |
| 587 | #define	NON_HASH_MEM_REGION_REG0		0x0c08	/* rw */ |
| 588 | #define	NON_HASH_MEM_REGION_REG1		0x0c10	/* rw */ |
| 589 | #define	NON_HASH_MEM_REGION_REG2		0x0c18	/* rw */ |
| 590 | #define	NON_HASH_MEM_REGION_REG3		0x0c20	/* rw */ |
| 591 | #define	NON_HASH_TGT_NODEID0			0x0c30	/* rw */ |
| 592 | #define	NON_HASH_TGT_NODEID1			0x0c38	/* rw */ |
| 593 | #define	NON_HASH_TGT_NODEID2			0x0c40	/* rw */ |
| 594 | #define	SYS_CACHE_GRP_REGION0			0x0c48	/* rw */ |
| 595 | #define	SYS_CACHE_GRP_REGION1			0x0c50	/* rw */ |
| 596 | #define	SYS_CACHE_GRP_HN_NODEID_REG0		0x0c58	/* rw */ |
| 597 | #define	SYS_CACHE_GRP_HN_NODEID_REG1		0x0c60	/* rw */ |
| 598 | #define	SYS_CACHE_GRP_HN_NODEID_REG2		0x0c68	/* rw */ |
| 599 | #define	SYS_CACHE_GRP_HN_NODEID_REG3		0x0c70	/* rw */ |
| 600 | #define	SYS_CACHE_GRP_HN_NODEID_REG4		0x0c78	/* rw */ |
| 601 | #define	SYS_CACHE_GRP_HN_NODEID_REG5		0x0c80	/* rw */ |
| 602 | #define	SYS_CACHE_GRP_HN_NODEID_REG6		0x0c88	/* rw */ |
| 603 | #define	SYS_CACHE_GRP_HN_NODEID_REG7		0x0c90	/* rw */ |
| 604 | #define	SYS_CACHE_GRP_NONHASH_NODEID		0x0c98	/* rw */ |
| 605 | #define	SYS_CACHE_GROUP_HN_COUNT		0x0d00	/* rw */ |
| 606 | #define	SYS_CACHE_GRP_SN_NODEID_REG0		0x0d08	/* rw */ |
| 607 | #define	SYS_CACHE_GRP_SN_NODEID_REG1		0x0d10	/* rw */ |
| 608 | #define	SYS_CACHE_GRP_SN_NODEID_REG2		0x0d18	/* rw */ |
| 609 | #define	SYS_CACHE_GRP_SN_NODEID_REG3		0x0d20	/* rw */ |
| 610 | #define	SYS_CACHE_GRP_SN_NODEID_REG4		0x0d28	/* rw */ |
| 611 | #define	SYS_CACHE_GRP_SN_NODEID_REG5		0x0d30	/* rw */ |
| 612 | #define	SYS_CACHE_GRP_SN_NODEID_REG6		0x0d38	/* rw */ |
| 613 | #define	SYS_CACHE_GRP_SN_NODEID_REG7		0x0d40	/* rw */ |
| 614 | #define	SYS_CACHE_GRP_SN_SAM_CFG0		0x0d48	/* rw */ |
| 615 | #define	SYS_CACHE_GRP_SN_SAM_CFG1		0x0d50	/* rw */ |
| 616 | #define	GIC_MEM_REGION_REG			0x0d58	/* rw */ |
| 617 | #define	SYS_CACHE_GRP_SN_ATTR			0x0d60	/* rw */ |
| 618 | #define	SYS_CACHE_GRP_HN_CPA_EN_REG		0x0d68	/* rw */ |
| 619 | #define	SYS_CACHE_GRP_HN_CPA_GRP_REG		0x0d70	/* rw */ |
| 620 | #define	CML_PORT_AGGR_MODE_CTRL_REG		0x0e00	/* rw */ |
| 621 | #define	CML_PORT_AGGR_GRP0_ADD_MASK		0x0e08	/* rw */ |
| 622 | #define	CML_PORT_AGGR_GRP1_ADD_MASK		0x0e10	/* rw */ |
| 623 | #define	CML_PORT_AGGR_GRP0_REG			0x0e40	/* rw */ |
| 624 | #define	CML_PORT_AGGR_GRP1_REG			0x0e48	/* rw */ |
| 625 | #define	SYS_CACHE_GRP_SECONDARY_REG0		0x0f00	/* rw */ |
| 626 | #define	SYS_CACHE_GRP_SECONDARY_REG1		0x0f08	/* rw */ |
| 627 | #define	SYS_CACHE_GRP_CAL_MODE_REG		0x0f10	/* rw */ |
| 628 | #define	RNSAM_HASH_ADDR_MASK_REG		0x0f18	/* rw */ |
| 629 | #define	RNSAM_REGION_CMP_ADDR_MASK_REG		0x0f20	/* rw */ |
| 630 | #define	SYS_CACHE_GRP_HN_NODEID_REG8		0x0f58	/* rw */ |
| 631 | #define	SYS_CACHE_GRP_HN_NODEID_REG9		0x0f60	/* rw */ |
| 632 | #define	SYS_CACHE_GRP_HN_NODEID_REG10		0x0f68	/* rw */ |
| 633 | #define	SYS_CACHE_GRP_HN_NODEID_REG11		0x0f70	/* rw */ |
| 634 | #define	SYS_CACHE_GRP_HN_NODEID_REG12		0x0f78	/* rw */ |
| 635 | #define	SYS_CACHE_GRP_HN_NODEID_REG13		0x0f80	/* rw */ |
| 636 | #define	SYS_CACHE_GRP_HN_NODEID_REG14		0x0f88	/* rw */ |
| 637 | #define	SYS_CACHE_GRP_HN_NODEID_REG15		0x0f90	/* rw */ |
| 638 | #define	SYS_CACHE_GRP_SN_NODEID_REG8		0x1008	/* rw */ |
| 639 | #define	SYS_CACHE_GRP_SN_NODEID_REG9		0x1010	/* rw */ |
| 640 | #define	SYS_CACHE_GRP_SN_NODEID_REG10		0x1018	/* rw */ |
| 641 | #define	SYS_CACHE_GRP_SN_NODEID_REG11		0x1020	/* rw */ |
| 642 | #define	SYS_CACHE_GRP_SN_NODEID_REG12		0x1028	/* rw */ |
| 643 | #define	SYS_CACHE_GRP_SN_NODEID_REG13		0x1030	/* rw */ |
| 644 | #define	SYS_CACHE_GRP_SN_NODEID_REG14		0x1038	/* rw */ |
| 645 | #define	SYS_CACHE_GRP_SN_NODEID_REG15		0x1040	/* rw */ |
| 646 | |
| 647 | /* SBSX registers */ |
| 648 | #define	POR_SBSX_NODE_INFO			0x0000	/* ro */ |
| 649 | #define	POR_SBSX_CHILD_INFO			0x0080	/* ro */ |
| 650 | #define	POR_SBSX_UNIT_INFO			0x0900	/* ro */ |
| 651 | #define	POR_SBSX_AUX_CTL			0x0a08	/* rw */ |
| 652 | #define	POR_SBSX_ERRFR				0x3000	/* ro */ |
| 653 | #define	POR_SBSX_ERRCTLR			0x3008	/* rw */ |
| 654 | #define	POR_SBSX_ERRSTATUS			0x3010	/* w1c */ |
| 655 | #define	POR_SBSX_ERRADDR			0x3018	/* rw */ |
| 656 | #define	POR_SBSX_ERRMISC			0x3020	/* rw */ |
| 657 | #define	POR_SBSX_ERRFR_NS			0x3100	/* ro */ |
| 658 | #define	POR_SBSX_ERRCTLR_NS			0x3108	/* rw */ |
| 659 | #define	POR_SBSX_ERRSTATUS_NS			0x3110	/* w1c */ |
| 660 | #define	POR_SBSX_ERRADDR_NS			0x3118	/* rw */ |
| 661 | #define	POR_SBSX_ERRMISC_NS			0x3120	/* rw */ |
| 662 | #define	POR_SBSX_PMU_EVENT_SEL			0x2000	/* rw */ |
| 663 | |
| 664 | /* CXHA registers */ |
| 665 | #define	POR_CXG_HA_NODE_INFO			0x0000	/* ro */ |
| 666 | #define	POR_CXG_HA_ID				0x0008	/* rw */ |
| 667 | #define	POR_CXG_HA_CHILD_INFO			0x0080	/* ro */ |
| 668 | #define	POR_CXG_HA_AUX_CTL			0x0a08	/* rw */ |
| 669 | #define	POR_CXG_HA_SECURE_REGISTER_GROUPS_OVERRIDE 0x0980 /* rw */ |
| 670 | #define	POR_CXG_HA_UNIT_INFO			0x0900	/* ro */ |
| 671 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG0	0x0c00	/* rw */ |
| 672 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG1	0x0c08	/* rw */ |
| 673 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG2	0x0c10	/* rw */ |
| 674 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG3	0x0c18	/* rw */ |
| 675 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG4	0x0c20	/* rw */ |
| 676 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG5	0x0c28	/* rw */ |
| 677 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG6	0x0c30	/* rw */ |
| 678 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_REG7	0x0c38	/* rw */ |
| 679 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG0	0x0c40	/* rw */ |
| 680 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG1	0x0c48	/* rw */ |
| 681 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG2	0x0c50	/* rw */ |
| 682 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG3	0x0c58	/* rw */ |
| 683 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG4	0x0c60	/* rw */ |
| 684 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG5	0x0c68	/* rw */ |
| 685 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG6	0x0c70	/* rw */ |
| 686 | #define	POR_CXG_HA_AGENTID_TO_LINKID_REG7	0x0c78	/* rw */ |
| 687 | #define	POR_CXG_HA_AGENTID_TO_LINKID_VAL	0x0d00	/* rw */ |
| 688 | #define	POR_CXG_HA_RNF_RAID_TO_LDID_VAL		0x0d08	/* rw */ |
| 689 | #define	POR_CXG_HA_PMU_EVENT_SEL		0x2000	/* rw */ |
| 690 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID3_SHIFT	24 |
| 691 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID3_MASK		(0x3f << 24) |
| 692 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID2_SHIFT	16 |
| 693 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID2_MASK		(0x3f << 16) |
| 694 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID1_SHIFT	8 |
| 695 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID1_MASK		(0x3f << 8) |
| 696 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID0_SHIFT	0 |
| 697 | #define		POR_CXG_HA_PMU_EVENT_SEL_EVENT_ID0_MASK		0x3f |
| 698 | |
| 699 | #define	POR_CXG_HA_CXPRTCL_LINK0_CTL		0x1000	/* rw */ |
| 700 | #define	POR_CXG_HA_CXPRTCL_LINK0_STATUS		0x1008	/* ro */ |
| 701 | #define	POR_CXG_HA_CXPRTCL_LINK1_CTL		0x1010	/* rw */ |
| 702 | #define	POR_CXG_HA_CXPRTCL_LINK1_STATUS		0x1018	/* ro */ |
| 703 | #define	POR_CXG_HA_CXPRTCL_LINK2_CTL		0x1020	/* rw */ |
| 704 | #define	POR_CXG_HA_CXPRTCL_LINK2_STATUS		0x1028	/* ro */ |
| 705 | #define	POR_CXG_HA_ERRFR			0x3000	/* ro */ |
| 706 | #define	POR_CXG_HA_ERRCTLR			0x3008	/* rw */ |
| 707 | #define	POR_CXG_HA_ERRSTATUS			0x3010	/* w1c */ |
| 708 | #define	POR_CXG_HA_ERRADDR			0x3018	/* rw */ |
| 709 | #define	POR_CXG_HA_ERRMISC			0x3020	/* rw */ |
| 710 | #define	POR_CXG_HA_ERRFR_NS			0x3100	/* ro */ |
| 711 | #define	POR_CXG_HA_ERRCTLR_NS			0x3108	/* rw */ |
| 712 | #define	POR_CXG_HA_ERRSTATUS_NS			0x3110	/* w1c */ |
| 713 | #define	POR_CXG_HA_ERRADDR_NS			0x3118	/* rw */ |
| 714 | #define	POR_CXG_HA_ERRMISC_NS			0x3120	/* rw */ |
| 715 | |
| 716 | /* CXRA registers */ |
| 717 | #define	POR_CXG_RA_NODE_INFO			0x0000	/* ro */ |
| 718 | #define	POR_CXG_RA_CHILD_INFO			0x0080	/* ro */ |
| 719 | #define	POR_CXG_RA_SECURE_REGISTER_GROUPS_OVERRIDE 0x0980 /* rw */ |
| 720 | #define	POR_CXG_RA_UNIT_INFO			0x0900	/* ro */ |
| 721 | #define	POR_CXG_RA_CFG_CTL			0x0a00	/* rw */ |
| 722 | #define		EN_CXLA_PMUCMD_PROP			(1 << 8) |
| 723 | #define	POR_CXG_RA_AUX_CTL			0x0a08	/* rw */ |
| 724 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG0		0x0da8	/* rw */ |
| 725 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG1		0x0db0	/* rw */ |
| 726 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG2		0x0db8	/* rw */ |
| 727 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG3		0x0dc0	/* rw */ |
| 728 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG4		0x0dc8	/* rw */ |
| 729 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG5		0x0dd0	/* rw */ |
| 730 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG6		0x0dd8	/* rw */ |
| 731 | #define	POR_CXG_RA_SAM_ADDR_REGION_REG7		0x0de0	/* rw */ |
| 732 | #define	POR_CXG_RA_SAM_MEM_REGION0_LIMIT_REG	0x0e00	/* rw */ |
| 733 | #define	POR_CXG_RA_SAM_MEM_REGION1_LIMIT_REG	0x0e08	/* rw */ |
| 734 | #define	POR_CXG_RA_SAM_MEM_REGION2_LIMIT_REG	0x0e10	/* rw */ |
| 735 | #define	POR_CXG_RA_SAM_MEM_REGION3_LIMIT_REG	0x0e18	/* rw */ |
| 736 | #define	POR_CXG_RA_SAM_MEM_REGION4_LIMIT_REG	0x0e20	/* rw */ |
| 737 | #define	POR_CXG_RA_SAM_MEM_REGION5_LIMIT_REG	0x0e28	/* rw */ |
| 738 | #define	POR_CXG_RA_SAM_MEM_REGION6_LIMIT_REG	0x0e30	/* rw */ |
| 739 | #define	POR_CXG_RA_SAM_MEM_REGION7_LIMIT_REG	0x0e38	/* rw */ |
| 740 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG0	0x0e60	/* rw */ |
| 741 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG1	0x0e68	/* rw */ |
| 742 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG2	0x0e70	/* rw */ |
| 743 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG3	0x0e78	/* rw */ |
| 744 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG4	0x0e80	/* rw */ |
| 745 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG5	0x0e88	/* rw */ |
| 746 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG6	0x0e90	/* rw */ |
| 747 | #define	POR_CXG_RA_AGENTID_TO_LINKID_REG7	0x0e98	/* rw */ |
| 748 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG0	0x0ea0	/* rw */ |
| 749 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG1	0x0ea8	/* rw */ |
| 750 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG2	0x0eb0	/* rw */ |
| 751 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG3	0x0eb8	/* rw */ |
| 752 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG4	0x0ec0	/* rw */ |
| 753 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG5	0x0ec8	/* rw */ |
| 754 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG6	0x0ed0	/* rw */ |
| 755 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_REG7	0x0ed8	/* rw */ |
| 756 | #define	POR_CXG_RA_RNI_LDID_TO_RAID_REG0	0x0ee0	/* rw */ |
| 757 | #define	POR_CXG_RA_RNI_LDID_TO_RAID_REG1	0x0ee8	/* rw */ |
| 758 | #define	POR_CXG_RA_RNI_LDID_TO_RAID_REG2	0x0ef0	/* rw */ |
| 759 | #define	POR_CXG_RA_RNI_LDID_TO_RAID_REG3	0x0ef8	/* rw */ |
| 760 | #define	POR_CXG_RA_RND_LDID_TO_RAID_REG0	0x0f00	/* rw */ |
| 761 | #define	POR_CXG_RA_RND_LDID_TO_RAID_REG1	0x0f08	/* rw */ |
| 762 | #define	POR_CXG_RA_RND_LDID_TO_RAID_REG2	0x0f10	/* rw */ |
| 763 | #define	POR_CXG_RA_RND_LDID_TO_RAID_REG3	0x0f18	/* rw */ |
| 764 | #define	POR_CXG_RA_AGENTID_TO_LINKID_VAL	0x0f20	/* rw */ |
| 765 | #define	POR_CXG_RA_RNF_LDID_TO_RAID_VAL		0x0f28	/* rw */ |
| 766 | #define	POR_CXG_RA_RNI_LDID_TO_RAID_VAL		0x0f30	/* rw */ |
| 767 | #define	POR_CXG_RA_RND_LDID_TO_RAID_VAL		0x0f38	/* rw */ |
| 768 | #define	POR_CXG_RA_PMU_EVENT_SEL		0x2000	/* rw */ |
| 769 | #define	POR_CXG_RA_CXPRTCL_LINK0_CTL		0x1000	/* rw */ |
| 770 | #define	POR_CXG_RA_CXPRTCL_LINK0_STATUS		0x1008	/* ro */ |
| 771 | #define	POR_CXG_RA_CXPRTCL_LINK1_CTL		0x1010	/* rw */ |
| 772 | #define	POR_CXG_RA_CXPRTCL_LINK1_STATUS		0x1018	/* ro */ |
| 773 | #define	POR_CXG_RA_CXPRTCL_LINK2_CTL		0x1020	/* rw */ |
| 774 | #define	POR_CXG_RA_CXPRTCL_LINK2_STATUS		0x1028	/* ro */ |
| 775 | |
| 776 | /* CXLA registers */ |
| 777 | #define	POR_CXLA_NODE_INFO			0x0000	/* ro */ |
| 778 | #define	POR_CXLA_CHILD_INFO			0x0080	/* ro */ |
| 779 | #define	POR_CXLA_SECURE_REGISTER_GROUPS_OVERRIDE 0x0980	/* rw */ |
| 780 | #define	POR_CXLA_UNIT_INFO			0x0900	/* ro */ |
| 781 | #define	POR_CXLA_AUX_CTL			0x0a08	/* rw */ |
| 782 | #define	POR_CXLA_CCIX_PROP_CAPABILITIES		0x0c00	/* ro */ |
| 783 | #define	POR_CXLA_CCIX_PROP_CONFIGURED		0x0c08	/* rw */ |
| 784 | #define	POR_CXLA_TX_CXS_ATTR_CAPABILITIES	0x0c10	/* ro */ |
| 785 | #define	POR_CXLA_RX_CXS_ATTR_CAPABILITIES	0x0c18	/* ro */ |
| 786 | #define	POR_CXLA_AGENTID_TO_LINKID_REG0		0x0c30	/* rw */ |
| 787 | #define	POR_CXLA_AGENTID_TO_LINKID_REG1		0x0c38	/* rw */ |
| 788 | #define	POR_CXLA_AGENTID_TO_LINKID_REG2		0x0c40	/* rw */ |
| 789 | #define	POR_CXLA_AGENTID_TO_LINKID_REG3		0x0c48	/* rw */ |
| 790 | #define	POR_CXLA_AGENTID_TO_LINKID_REG4		0x0c50	/* rw */ |
| 791 | #define	POR_CXLA_AGENTID_TO_LINKID_REG5		0x0c58	/* rw */ |
| 792 | #define	POR_CXLA_AGENTID_TO_LINKID_REG6		0x0c60	/* rw */ |
| 793 | #define	POR_CXLA_AGENTID_TO_LINKID_REG7		0x0c68	/* rw */ |
| 794 | #define	POR_CXLA_AGENTID_TO_LINKID_VAL		0x0c70	/* rw */ |
| 795 | #define	POR_CXLA_LINKID_TO_PCIE_BUS_NUM		0x0c78	/* rw */ |
| 796 | #define	POR_CXLA_PERMSG_PYLD_0_63		0x0d00	/* rw */ |
| 797 | #define	POR_CXLA_PERMSG_PYLD_64_127		0x0d08	/* rw */ |
| 798 | #define	POR_CXLA_PERMSG_PYLD_128_191		0x0d10	/* rw */ |
| 799 | #define	POR_CXLA_PERMSG_PYLD_192_255		0x0d18	/* rw */ |
| 800 | #define	POR_CXLA_PERMSG_CTL			0x0d20	/* rw */ |
| 801 | #define	POR_CXLA_ERR_AGENT_ID			0x0d28	/* rw */ |
| 802 | #define	POR_CXLA_PMU_EVENT_SEL			0x2000	/* rw */ |
| 803 | #define	POR_CXLA_PMU_CONFIG			0x2210	/* rw */ |
| 804 | #define	POR_CXLA_PMEVCNT			0x2220	/* rw */ |
| 805 | #define	POR_CXLA_PMEVCNTSR			0x2240	/* rw */ |
| 806 | |
| 807 | #endif	/* _MACHINE_CMN600_REG_H_ */ |