panfrost_regs.h 16 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright 2018 Marty E. Plummer <hanetzer@startmail.com> */
/* Copyright 2019 Linaro, Ltd, Rob Herring <robh@kernel.org> */
/*
 * Register definitions based on mali_midg_regmap.h
 * (C) COPYRIGHT 2010-2018 ARM Limited. All rights reserved.
 */
#ifndef __PANFROST_REGS_H__
#define __PANFROST_REGS_H__

#define GPU_ID				0x00
#define GPU_L2_FEATURES			0x004	/* (RO) Level 2 cache features */
#define GPU_CORE_FEATURES		0x008	/* (RO) Shader Core Features */
#define GPU_TILER_FEATURES		0x00C	/* (RO) Tiler Features */
#define GPU_MEM_FEATURES		0x010	/* (RO) Memory system features */
#define   GROUPS_L2_COHERENT		BIT(0)	/* Cores groups are l2 coherent */

#define GPU_MMU_FEATURES		0x014	/* (RO) MMU features */
#define GPU_AS_PRESENT			0x018	/* (RO) Address space slots present */
#define GPU_JS_PRESENT			0x01C	/* (RO) Job slots present */

#define GPU_INT_RAWSTAT			0x20
#define GPU_INT_CLEAR			0x24
#define GPU_INT_MASK			0x28
#define GPU_INT_STAT			0x2c
#define   GPU_IRQ_FAULT			BIT(0)
#define   GPU_IRQ_MULTIPLE_FAULT	BIT(7)
#define   GPU_IRQ_RESET_COMPLETED	BIT(8)
#define   GPU_IRQ_POWER_CHANGED		BIT(9)
#define   GPU_IRQ_POWER_CHANGED_ALL	BIT(10)
#define   GPU_IRQ_PERFCNT_SAMPLE_COMPLETED BIT(16)
#define   GPU_IRQ_CLEAN_CACHES_COMPLETED BIT(17)
#define   GPU_IRQ_MASK_ALL			 \
	  (GPU_IRQ_FAULT			|\
	   GPU_IRQ_MULTIPLE_FAULT		|\
	   GPU_IRQ_RESET_COMPLETED		|\
	   GPU_IRQ_POWER_CHANGED		|\
	   GPU_IRQ_POWER_CHANGED_ALL		|\
	   GPU_IRQ_PERFCNT_SAMPLE_COMPLETED	|\
	   GPU_IRQ_CLEAN_CACHES_COMPLETED)
#define GPU_IRQ_MASK_ERROR	   		\
	(					\
	 GPU_IRQ_FAULT				|\
	 GPU_IRQ_MULTIPLE_FAULT)
#define GPU_CMD				0x30
#define   GPU_CMD_SOFT_RESET		0x01
47 48
#define   GPU_CMD_PERFCNT_CLEAR		0x03
#define   GPU_CMD_PERFCNT_SAMPLE	0x04
49 50
#define   GPU_CMD_CYCLE_COUNT_START	0x05
#define   GPU_CMD_CYCLE_COUNT_STOP	0x06
51 52
#define   GPU_CMD_CLEAN_CACHES		0x07
#define   GPU_CMD_CLEAN_INV_CACHES	0x08
53
#define GPU_STATUS			0x34
54
#define   GPU_STATUS_PRFCNT_ACTIVE	BIT(2)
55
#define GPU_LATEST_FLUSH_ID		0x38
56 57 58 59
#define GPU_PWR_KEY			0x50	/* (WO) Power manager key register */
#define  GPU_PWR_KEY_UNLOCK		0x2968A819
#define GPU_PWR_OVERRIDE0		0x54	/* (RW) Power manager override settings */
#define GPU_PWR_OVERRIDE1		0x58	/* (RW) Power manager override settings */
60 61 62 63
#define GPU_FAULT_STATUS		0x3C
#define GPU_FAULT_ADDRESS_LO		0x40
#define GPU_FAULT_ADDRESS_HI		0x44

64 65 66 67 68 69 70 71 72 73 74 75 76 77
#define GPU_PERFCNT_BASE_LO		0x60
#define GPU_PERFCNT_BASE_HI		0x64
#define GPU_PERFCNT_CFG			0x68
#define   GPU_PERFCNT_CFG_MODE(x)	(x)
#define   GPU_PERFCNT_CFG_MODE_OFF	0
#define   GPU_PERFCNT_CFG_MODE_MANUAL	1
#define   GPU_PERFCNT_CFG_MODE_TILE	2
#define   GPU_PERFCNT_CFG_AS(x)		((x) << 4)
#define   GPU_PERFCNT_CFG_SETSEL(x)	((x) << 8)
#define GPU_PRFCNT_JM_EN		0x6c
#define GPU_PRFCNT_SHADER_EN		0x70
#define GPU_PRFCNT_TILER_EN		0x74
#define GPU_PRFCNT_MMU_L2_EN		0x7c

78 79 80
#define GPU_CYCLE_COUNT_LO		0x90
#define GPU_CYCLE_COUNT_HI		0x94

81 82 83 84 85 86 87 88 89
#define GPU_THREAD_MAX_THREADS		0x0A0	/* (RO) Maximum number of threads per core */
#define GPU_THREAD_MAX_WORKGROUP_SIZE	0x0A4	/* (RO) Maximum workgroup size */
#define GPU_THREAD_MAX_BARRIER_SIZE	0x0A8	/* (RO) Maximum threads waiting at a barrier */
#define GPU_THREAD_FEATURES		0x0AC	/* (RO) Thread features */
#define GPU_THREAD_TLS_ALLOC		0x310   /* (RO) Number of threads per core that
						 * TLS must be allocated for */

#define GPU_TEXTURE_FEATURES(n)		(0x0B0 + ((n) * 4))
#define GPU_JS_FEATURES(n)		(0x0C0 + ((n) * 4))
90
#define GPU_AFBC_FEATURES		(0x4C)	/* (RO) AFBC support on Bifrost */
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202

#define GPU_SHADER_PRESENT_LO		0x100	/* (RO) Shader core present bitmap, low word */
#define GPU_SHADER_PRESENT_HI		0x104	/* (RO) Shader core present bitmap, high word */
#define GPU_TILER_PRESENT_LO		0x110	/* (RO) Tiler core present bitmap, low word */
#define GPU_TILER_PRESENT_HI		0x114	/* (RO) Tiler core present bitmap, high word */

#define GPU_L2_PRESENT_LO		0x120	/* (RO) Level 2 cache present bitmap, low word */
#define GPU_L2_PRESENT_HI		0x124	/* (RO) Level 2 cache present bitmap, high word */

#define GPU_COHERENCY_FEATURES		0x300	/* (RO) Coherency features present */
#define   COHERENCY_ACE_LITE		BIT(0)
#define   COHERENCY_ACE			BIT(1)

#define GPU_STACK_PRESENT_LO		0xE00   /* (RO) Core stack present bitmap, low word */
#define GPU_STACK_PRESENT_HI		0xE04   /* (RO) Core stack present bitmap, high word */

#define SHADER_READY_LO			0x140	/* (RO) Shader core ready bitmap, low word */
#define SHADER_READY_HI			0x144	/* (RO) Shader core ready bitmap, high word */

#define TILER_READY_LO			0x150	/* (RO) Tiler core ready bitmap, low word */
#define TILER_READY_HI			0x154	/* (RO) Tiler core ready bitmap, high word */

#define L2_READY_LO			0x160	/* (RO) Level 2 cache ready bitmap, low word */
#define L2_READY_HI			0x164	/* (RO) Level 2 cache ready bitmap, high word */

#define STACK_READY_LO			0xE10   /* (RO) Core stack ready bitmap, low word */
#define STACK_READY_HI			0xE14   /* (RO) Core stack ready bitmap, high word */


#define SHADER_PWRON_LO			0x180	/* (WO) Shader core power on bitmap, low word */
#define SHADER_PWRON_HI			0x184	/* (WO) Shader core power on bitmap, high word */

#define TILER_PWRON_LO			0x190	/* (WO) Tiler core power on bitmap, low word */
#define TILER_PWRON_HI			0x194	/* (WO) Tiler core power on bitmap, high word */

#define L2_PWRON_LO			0x1A0	/* (WO) Level 2 cache power on bitmap, low word */
#define L2_PWRON_HI			0x1A4	/* (WO) Level 2 cache power on bitmap, high word */

#define STACK_PWRON_LO			0xE20   /* (RO) Core stack power on bitmap, low word */
#define STACK_PWRON_HI			0xE24   /* (RO) Core stack power on bitmap, high word */


#define SHADER_PWROFF_LO		0x1C0	/* (WO) Shader core power off bitmap, low word */
#define SHADER_PWROFF_HI		0x1C4	/* (WO) Shader core power off bitmap, high word */

#define TILER_PWROFF_LO			0x1D0	/* (WO) Tiler core power off bitmap, low word */
#define TILER_PWROFF_HI			0x1D4	/* (WO) Tiler core power off bitmap, high word */

#define L2_PWROFF_LO			0x1E0	/* (WO) Level 2 cache power off bitmap, low word */
#define L2_PWROFF_HI			0x1E4	/* (WO) Level 2 cache power off bitmap, high word */

#define STACK_PWROFF_LO			0xE30   /* (RO) Core stack power off bitmap, low word */
#define STACK_PWROFF_HI			0xE34   /* (RO) Core stack power off bitmap, high word */


#define SHADER_PWRTRANS_LO		0x200	/* (RO) Shader core power transition bitmap, low word */
#define SHADER_PWRTRANS_HI		0x204	/* (RO) Shader core power transition bitmap, high word */

#define TILER_PWRTRANS_LO		0x210	/* (RO) Tiler core power transition bitmap, low word */
#define TILER_PWRTRANS_HI		0x214	/* (RO) Tiler core power transition bitmap, high word */

#define L2_PWRTRANS_LO			0x220	/* (RO) Level 2 cache power transition bitmap, low word */
#define L2_PWRTRANS_HI			0x224	/* (RO) Level 2 cache power transition bitmap, high word */

#define STACK_PWRTRANS_LO		0xE40   /* (RO) Core stack power transition bitmap, low word */
#define STACK_PWRTRANS_HI		0xE44   /* (RO) Core stack power transition bitmap, high word */


#define SHADER_PWRACTIVE_LO		0x240	/* (RO) Shader core active bitmap, low word */
#define SHADER_PWRACTIVE_HI		0x244	/* (RO) Shader core active bitmap, high word */

#define TILER_PWRACTIVE_LO		0x250	/* (RO) Tiler core active bitmap, low word */
#define TILER_PWRACTIVE_HI		0x254	/* (RO) Tiler core active bitmap, high word */

#define L2_PWRACTIVE_LO			0x260	/* (RO) Level 2 cache active bitmap, low word */
#define L2_PWRACTIVE_HI			0x264	/* (RO) Level 2 cache active bitmap, high word */

#define GPU_JM_CONFIG			0xF00   /* (RW) Job Manager configuration register (Implementation specific register) */
#define GPU_SHADER_CONFIG		0xF04	/* (RW) Shader core configuration settings (Implementation specific register) */
#define GPU_TILER_CONFIG		0xF08   /* (RW) Tiler core configuration settings (Implementation specific register) */
#define GPU_L2_MMU_CONFIG		0xF0C	/* (RW) Configuration of the L2 cache and MMU (Implementation specific register) */

/* L2_MMU_CONFIG register */
#define L2_MMU_CONFIG_ALLOW_SNOOP_DISPARITY_SHIFT	23
#define L2_MMU_CONFIG_ALLOW_SNOOP_DISPARITY		(0x1 << L2_MMU_CONFIG_ALLOW_SNOOP_DISPARITY_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT	24
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_READS		(0x3 << L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_OCTANT	(0x1 << L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_QUARTER	(0x2 << L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_HALF		(0x3 << L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT)

#define L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT	26
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES		(0x3 << L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_OCTANT	(0x1 << L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_QUARTER	(0x2 << L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT)
#define L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_HALF	(0x3 << L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT)

#define L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_READS_SHIFT	12
#define L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_READS		(0x7 << L2_MMU_CONFIG_LIMIT_EXTERNAL_READS_SHIFT)

#define L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_WRITES_SHIFT	15
#define L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_WRITES	(0x7 << L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES_SHIFT)

/* SHADER_CONFIG register */
#define SC_ALT_COUNTERS			BIT(3)
#define SC_OVERRIDE_FWD_PIXEL_KILL	BIT(4)
#define SC_SDC_DISABLE_OQ_DISCARD	BIT(6)
#define SC_LS_ALLOW_ATTR_TYPES		BIT(16)
#define SC_LS_PAUSEBUFFER_DISABLE	BIT(16)
#define SC_TLS_HASH_ENABLE		BIT(17)
#define SC_LS_ATTR_CHECK_DISABLE	BIT(18)
#define SC_ENABLE_TEXGRD_FLAGS		BIT(25)
203
#define SC_VAR_ALGORITHM		BIT(29)
204 205 206 207 208 209 210 211 212 213 214 215 216
/* End SHADER_CONFIG register */

/* TILER_CONFIG register */
#define TC_CLOCK_GATE_OVERRIDE		BIT(0)

/* JM_CONFIG register */
#define JM_TIMESTAMP_OVERRIDE		BIT(0)
#define JM_CLOCK_GATE_OVERRIDE		BIT(1)
#define JM_JOB_THROTTLE_ENABLE		BIT(2)
#define JM_JOB_THROTTLE_LIMIT_SHIFT	3
#define JM_MAX_JOB_THROTTLE_LIMIT	0x3F
#define JM_FORCE_COHERENCY_FEATURES_SHIFT 2
#define JM_IDVS_GROUP_SIZE_SHIFT	16
217
#define JM_DEFAULT_IDVS_GROUP_SIZE	0xF
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
#define JM_MAX_IDVS_GROUP_SIZE		0x3F


/* Job Control regs */
#define JOB_INT_RAWSTAT			0x1000
#define JOB_INT_CLEAR			0x1004
#define JOB_INT_MASK			0x1008
#define JOB_INT_STAT			0x100c
#define JOB_INT_JS_STATE		0x1010
#define JOB_INT_THROTTLE		0x1014

#define MK_JS_MASK(j)			(0x10001 << (j))
#define JOB_INT_MASK_ERR(j)		BIT((j) + 16)
#define JOB_INT_MASK_DONE(j)		BIT(j)

#define JS_BASE				0x1800
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
#define JS_SLOT_STRIDE			0x80

#define JS_HEAD_LO(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x00)
#define JS_HEAD_HI(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x04)
#define JS_TAIL_LO(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x08)
#define JS_TAIL_HI(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x0c)
#define JS_AFFINITY_LO(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x10)
#define JS_AFFINITY_HI(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x14)
#define JS_CONFIG(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x18)
#define JS_XAFFINITY(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x1c)
#define JS_COMMAND(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x20)
#define JS_STATUS(n)			(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x24)
#define JS_HEAD_NEXT_LO(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x40)
#define JS_HEAD_NEXT_HI(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x44)
#define JS_AFFINITY_NEXT_LO(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x50)
#define JS_AFFINITY_NEXT_HI(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x54)
#define JS_CONFIG_NEXT(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x58)
#define JS_COMMAND_NEXT(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x60)
#define JS_FLUSH_ID_NEXT(n)		(JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x70)
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290

/* Possible values of JS_CONFIG and JS_CONFIG_NEXT registers */
#define JS_CONFIG_START_FLUSH_CLEAN		BIT(8)
#define JS_CONFIG_START_FLUSH_CLEAN_INVALIDATE	(3u << 8)
#define JS_CONFIG_START_MMU			BIT(10)
#define JS_CONFIG_JOB_CHAIN_FLAG		BIT(11)
#define JS_CONFIG_END_FLUSH_CLEAN		BIT(12)
#define JS_CONFIG_END_FLUSH_CLEAN_INVALIDATE	(3u << 12)
#define JS_CONFIG_ENABLE_FLUSH_REDUCTION	BIT(14)
#define JS_CONFIG_DISABLE_DESCRIPTOR_WR_BK	BIT(15)
#define JS_CONFIG_THREAD_PRI(n)			((n) << 16)

#define JS_COMMAND_NOP			0x00
#define JS_COMMAND_START		0x01
#define JS_COMMAND_SOFT_STOP		0x02	/* Gently stop processing a job chain */
#define JS_COMMAND_HARD_STOP		0x03	/* Rudely stop processing a job chain */
#define JS_COMMAND_SOFT_STOP_0		0x04	/* Execute SOFT_STOP if JOB_CHAIN_FLAG is 0 */
#define JS_COMMAND_HARD_STOP_0		0x05	/* Execute HARD_STOP if JOB_CHAIN_FLAG is 0 */
#define JS_COMMAND_SOFT_STOP_1		0x06	/* Execute SOFT_STOP if JOB_CHAIN_FLAG is 1 */
#define JS_COMMAND_HARD_STOP_1		0x07	/* Execute HARD_STOP if JOB_CHAIN_FLAG is 1 */

/* MMU regs */
#define MMU_INT_RAWSTAT			0x2000
#define MMU_INT_CLEAR			0x2004
#define MMU_INT_MASK			0x2008
#define MMU_INT_STAT			0x200c

/* AS_COMMAND register commands */
#define AS_COMMAND_NOP			0x00	/* NOP Operation */
#define AS_COMMAND_UPDATE		0x01	/* Broadcasts the values in AS_TRANSTAB and ASn_MEMATTR to all MMUs */
#define AS_COMMAND_LOCK			0x02	/* Issue a lock region command to all MMUs */
#define AS_COMMAND_UNLOCK		0x03	/* Issue a flush region command to all MMUs */
#define AS_COMMAND_FLUSH		0x04	/* Flush all L2 caches then issue a flush region command to all MMUs
						   (deprecated - only for use with T60x) */
#define AS_COMMAND_FLUSH_PT		0x04	/* Flush all L2 caches then issue a flush region command to all MMUs */
#define AS_COMMAND_FLUSH_MEM		0x05	/* Wait for memory accesses to complete, flush all the L1s cache then
						   flush all L2 caches then issue a flush region command to all MMUs */

291 292 293
#define MMU_BASE			0x2400
#define MMU_AS_SHIFT			0x06
#define MMU_AS(as)			(MMU_BASE + ((as) << MMU_AS_SHIFT))
294 295 296 297 298 299 300 301 302 303 304 305

#define AS_TRANSTAB_LO(as)		(MMU_AS(as) + 0x00) /* (RW) Translation Table Base Address for address space n, low word */
#define AS_TRANSTAB_HI(as)		(MMU_AS(as) + 0x04) /* (RW) Translation Table Base Address for address space n, high word */
#define AS_MEMATTR_LO(as)		(MMU_AS(as) + 0x08) /* (RW) Memory attributes for address space n, low word. */
#define AS_MEMATTR_HI(as)		(MMU_AS(as) + 0x0C) /* (RW) Memory attributes for address space n, high word. */
#define AS_LOCKADDR_LO(as)		(MMU_AS(as) + 0x10) /* (RW) Lock region address for address space n, low word */
#define AS_LOCKADDR_HI(as)		(MMU_AS(as) + 0x14) /* (RW) Lock region address for address space n, high word */
#define AS_COMMAND(as)			(MMU_AS(as) + 0x18) /* (WO) MMU command register for address space n */
#define AS_FAULTSTATUS(as)		(MMU_AS(as) + 0x1C) /* (RO) MMU fault status register for address space n */
#define AS_FAULTADDRESS_LO(as)		(MMU_AS(as) + 0x20) /* (RO) Fault Address for address space n, low word */
#define AS_FAULTADDRESS_HI(as)		(MMU_AS(as) + 0x24) /* (RO) Fault Address for address space n, high word */
#define AS_STATUS(as)			(MMU_AS(as) + 0x28) /* (RO) Status flags for address space n */
Tom Rix's avatar
Tom Rix committed
306
/* Additional Bifrost AS registers */
307 308 309 310 311
#define AS_TRANSCFG_LO(as)		(MMU_AS(as) + 0x30) /* (RW) Translation table configuration for address space n, low word */
#define AS_TRANSCFG_HI(as)		(MMU_AS(as) + 0x34) /* (RW) Translation table configuration for address space n, high word */
#define AS_FAULTEXTRA_LO(as)		(MMU_AS(as) + 0x38) /* (RO) Secondary fault address for address space n, low word */
#define AS_FAULTEXTRA_HI(as)		(MMU_AS(as) + 0x3C) /* (RO) Secondary fault address for address space n, high word */

312 313
#define MMU_AS_STRIDE			(1 << MMU_AS_SHIFT)

314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
/*
 * Begin LPAE MMU TRANSTAB register values
 */
#define AS_TRANSTAB_LPAE_ADDR_SPACE_MASK	0xfffffffffffff000
#define AS_TRANSTAB_LPAE_ADRMODE_IDENTITY	0x2
#define AS_TRANSTAB_LPAE_ADRMODE_TABLE		0x3
#define AS_TRANSTAB_LPAE_ADRMODE_MASK		0x3
#define AS_TRANSTAB_LPAE_READ_INNER		BIT(2)
#define AS_TRANSTAB_LPAE_SHARE_OUTER		BIT(4)

#define AS_STATUS_AS_ACTIVE			0x01

#define AS_FAULTSTATUS_ACCESS_TYPE_MASK		(0x3 << 8)
#define AS_FAULTSTATUS_ACCESS_TYPE_ATOMIC	(0x0 << 8)
#define AS_FAULTSTATUS_ACCESS_TYPE_EX		(0x1 << 8)
#define AS_FAULTSTATUS_ACCESS_TYPE_READ		(0x2 << 8)
#define AS_FAULTSTATUS_ACCESS_TYPE_WRITE	(0x3 << 8)

332 333
#define AS_LOCK_REGION_MIN_SIZE                 (1ULL << 15)

334 335 336
#define gpu_write(dev, reg, data) writel(data, dev->iomem + reg)
#define gpu_read(dev, reg) readl(dev->iomem + reg)

337
#endif