xref: /openbmc/linux/drivers/gpu/drm/amd/amdkfd/cik_regs.h (revision da73b9fb)
16e99df57SBen Goz /*
26e99df57SBen Goz  * Copyright 2014 Advanced Micro Devices, Inc.
36e99df57SBen Goz  *
46e99df57SBen Goz  * Permission is hereby granted, free of charge, to any person obtaining a
56e99df57SBen Goz  * copy of this software and associated documentation files (the "Software"),
66e99df57SBen Goz  * to deal in the Software without restriction, including without limitation
76e99df57SBen Goz  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
86e99df57SBen Goz  * and/or sell copies of the Software, and to permit persons to whom the
96e99df57SBen Goz  * Software is furnished to do so, subject to the following conditions:
106e99df57SBen Goz  *
116e99df57SBen Goz  * The above copyright notice and this permission notice shall be included in
126e99df57SBen Goz  * all copies or substantial portions of the Software.
136e99df57SBen Goz  *
146e99df57SBen Goz  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
156e99df57SBen Goz  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
166e99df57SBen Goz  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
176e99df57SBen Goz  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
186e99df57SBen Goz  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
196e99df57SBen Goz  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
206e99df57SBen Goz  * OTHER DEALINGS IN THE SOFTWARE.
216e99df57SBen Goz  */
226e99df57SBen Goz 
236e99df57SBen Goz #ifndef CIK_REGS_H
246e99df57SBen Goz #define CIK_REGS_H
256e99df57SBen Goz 
266e99df57SBen Goz /* if PTR32, these are the bases for scratch and lds */
276e99df57SBen Goz #define	PRIVATE_BASE(x)					((x) << 0) /* scratch */
286e99df57SBen Goz #define	SHARED_BASE(x)					((x) << 16) /* LDS */
296e99df57SBen Goz #define	PTR32						(1 << 0)
306e99df57SBen Goz #define	ALIGNMENT_MODE(x)				((x) << 2)
316e99df57SBen Goz #define	SH_MEM_ALIGNMENT_MODE_UNALIGNED			3
326e99df57SBen Goz #define	DEFAULT_MTYPE(x)				((x) << 4)
336e99df57SBen Goz #define	APE1_MTYPE(x)					((x) << 7)
346e99df57SBen Goz 
356e99df57SBen Goz /* valid for both DEFAULT_MTYPE and APE1_MTYPE */
366e99df57SBen Goz #define	MTYPE_CACHED					0
376e99df57SBen Goz #define	MTYPE_NONCACHED					3
386e99df57SBen Goz 
396e99df57SBen Goz #define	DEFAULT_CP_HQD_PERSISTENT_STATE			(0x33U << 8)
406e99df57SBen Goz #define	PRELOAD_REQ					(1 << 0)
416e99df57SBen Goz 
42da73b9fbSOded Gabbay #define	MQD_CONTROL_PRIV_STATE_EN			(1U << 8)
43da73b9fbSOded Gabbay 
44da73b9fbSOded Gabbay #define	DEFAULT_MIN_IB_AVAIL_SIZE			(3U << 20)
45da73b9fbSOded Gabbay 
46da73b9fbSOded Gabbay #define	IB_ATC_EN					(1U << 23)
47da73b9fbSOded Gabbay 
486e99df57SBen Goz #define	QUANTUM_EN					1U
496e99df57SBen Goz #define	QUANTUM_SCALE_1MS				(1U << 4)
506e99df57SBen Goz #define	QUANTUM_DURATION(x)				((x) << 8)
516e99df57SBen Goz 
526e99df57SBen Goz #define	RPTR_BLOCK_SIZE(x)				((x) << 8)
536e99df57SBen Goz #define	MIN_AVAIL_SIZE(x)				((x) << 20)
546e99df57SBen Goz #define	DEFAULT_RPTR_BLOCK_SIZE				RPTR_BLOCK_SIZE(5)
556e99df57SBen Goz #define	DEFAULT_MIN_AVAIL_SIZE				MIN_AVAIL_SIZE(3)
566e99df57SBen Goz 
57da73b9fbSOded Gabbay #define	PQ_ATC_EN					(1 << 23)
58da73b9fbSOded Gabbay #define	NO_UPDATE_RPTR					(1 << 27)
59da73b9fbSOded Gabbay 
60da73b9fbSOded Gabbay #define	DOORBELL_OFFSET(x)				((x) << 2)
61da73b9fbSOded Gabbay #define	DOORBELL_EN					(1 << 30)
62da73b9fbSOded Gabbay 
63da73b9fbSOded Gabbay #define	PRIV_STATE					(1 << 30)
64da73b9fbSOded Gabbay #define	KMD_QUEUE					(1 << 31)
656e99df57SBen Goz 
6671273adcSOded Gabbay #define	AQL_ENABLE					1
6771273adcSOded Gabbay 
6871273adcSOded Gabbay #define	SDMA_RB_VMID(x)					(x << 24)
6971273adcSOded Gabbay #define	SDMA_RB_ENABLE					(1 << 0)
7071273adcSOded Gabbay #define	SDMA_RB_SIZE(x)					((x) << 1) /* log2 */
7171273adcSOded Gabbay #define	SDMA_RPTR_WRITEBACK_ENABLE			(1 << 12)
7271273adcSOded Gabbay #define	SDMA_RPTR_WRITEBACK_TIMER(x)			((x) << 16) /* log2 */
7371273adcSOded Gabbay #define	SDMA_OFFSET(x)					(x << 0)
7471273adcSOded Gabbay #define	SDMA_DB_ENABLE					(1 << 28)
7571273adcSOded Gabbay #define	SDMA_ATC					(1 << 0)
7671273adcSOded Gabbay #define	SDMA_VA_PTR32					(1 << 4)
7771273adcSOded Gabbay #define	SDMA_VA_SHARED_BASE(x)				(x << 8)
7871273adcSOded Gabbay 
796e99df57SBen Goz #define GRBM_GFX_INDEX					0x30800
806e99df57SBen Goz 
816e99df57SBen Goz #define	ATC_VMID_PASID_MAPPING_VALID			(1U << 31)
826e99df57SBen Goz 
836e99df57SBen Goz #endif
84