All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Marek <jonathan@marek.ca>
To: freedreno@lists.freedesktop.org
Cc: Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	linux-kernel@vger.kernel.org (open list),
	linux-arm-msm@vger.kernel.org (open list:DRM DRIVER FOR MSM
	ADRENO GPU),
	dri-devel@lists.freedesktop.org (open list:DRM DRIVER FOR MSM
	ADRENO GPU)
Subject: [PATCH 3/4] drm/msm/adreno: update headers
Date: Sun, 27 Mar 2022 16:25:56 -0400	[thread overview]
Message-ID: <20220327202643.4053-4-jonathan@marek.ca> (raw)
In-Reply-To: <20220327202643.4053-1-jonathan@marek.ca>

Adds a7xx changes for the kernel driver.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
 drivers/gpu/drm/msm/adreno/a7xx.xml.h       | 666 ++++++++++++++++++++
 drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h |  63 +-
 2 files changed, 716 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/adreno/a7xx.xml.h

diff --git a/drivers/gpu/drm/msm/adreno/a7xx.xml.h b/drivers/gpu/drm/msm/adreno/a7xx.xml.h
new file mode 100644
index 0000000000000..45ef4289ac52b
--- /dev/null
+++ b/drivers/gpu/drm/msm/adreno/a7xx.xml.h
@@ -0,0 +1,666 @@
+#ifndef A7XX_XML
+#define A7XX_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://github.com/freedreno/envytools/
+git clone https://github.com/freedreno/envytools.git
+
+The rules-ng-ng source files this header was generated from are:
+- freedreno/registers/adreno.xml                     (    627 bytes, from 2022-03-27 15:04:47)
+- freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/adreno_common.xml       (  14631 bytes, from 2022-03-27 14:52:08)
+- freedreno/registers/adreno/adreno_pm4.xml          (  70334 bytes, from 2022-03-27 20:01:26)
+- freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-08-27 13:03:56)
+- freedreno/registers/adreno/a4xx.xml                ( 113474 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-03-21 16:05:18)
+- freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/a7xx.xml                (  20004 bytes, from 2022-03-27 20:01:42)
+- freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2022-03-22 19:23:46)
+
+Copyright (C) 2013-2022 by the following authors:
+- Rob Clark <robdclark@gmail.com> (robclark)
+- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+
+enum a7xx_event {
+	CCU_INVALIDATE_DEPTH = 24,
+	CCU_INVALIDATE_COLOR = 25,
+	CCU_RESOLVE_CLEAN = 26,
+	CCU_FLUSH_DEPTH = 28,
+	CCU_FLUSH_COLOR = 29,
+	CCU_RESOLVE = 30,
+	CCU_END_RESOLVE_GROUP = 31,
+	CCU_CLEAN_DEPTH = 32,
+	CCU_CLEAN_COLOR = 33,
+	CACHE_RESET = 48,
+	CACHE_CLEAN = 49,
+	CACHE_FLUSH7 = 50,
+	CACHE_INVALIDATE7 = 51,
+};
+
+#define REG_A7XX_RBBM_GBIF_CLIENT_QOS_CNTL			0x00000011
+
+#define REG_A7XX_RBBM_GBIF_HALT					0x00000016
+
+#define REG_A7XX_RBBM_GBIF_HALT_ACK				0x00000017
+
+#define REG_A7XX_RBBM_INTERFACE_HANG_INT_CNTL			0x0000001f
+
+#define REG_A7XX_RBBM_INT_CLEAR_CMD				0x00000037
+
+#define REG_A7XX_RBBM_INT_0_MASK				0x00000038
+#define A7XX_RBBM_INT_0_MASK_GPUIDLE				0x00000001
+#define A7XX_RBBM_INT_0_MASK_AHBERROR				0x00000002
+#define A7XX_RBBM_INT_0_MASK_CPIPCINT0				0x00000010
+#define A7XX_RBBM_INT_0_MASK_CPIPCINT1				0x00000020
+#define A7XX_RBBM_INT_0_MASK_ATBASYNCFIFOOVERFLOW		0x00000040
+#define A7XX_RBBM_INT_0_MASK_GPCERROR				0x00000080
+#define A7XX_RBBM_INT_0_MASK_SWINTERRUPT			0x00000100
+#define A7XX_RBBM_INT_0_MASK_HWERROR				0x00000200
+#define A7XX_RBBM_INT_0_MASK_CCU_CLEAN_DEPTH_TS			0x00000400
+#define A7XX_RBBM_INT_0_MASK_CCU_CLEAN_COLOR_TS			0x00000800
+#define A7XX_RBBM_INT_0_MASK_CCU_RESOLVE_CLEAN_TS		0x00001000
+#define A7XX_RBBM_INT_0_MASK_PM4CPINTERRUPT			0x00008000
+#define A7XX_RBBM_INT_0_MASK_PM4CPINTERRUPTLPAC			0x00010000
+#define A7XX_RBBM_INT_0_MASK_RB_DONE_TS				0x00020000
+#define A7XX_RBBM_INT_0_MASK_CACHE_CLEAN_TS			0x00100000
+#define A7XX_RBBM_INT_0_MASK_CACHE_CLEAN_TS_LPAC		0x00200000
+#define A7XX_RBBM_INT_0_MASK_ATBBUSOVERFLOW			0x00400000
+#define A7XX_RBBM_INT_0_MASK_HANGDETECTINTERRUPT		0x00800000
+#define A7XX_RBBM_INT_0_MASK_OUTOFBOUNDACCESS			0x01000000
+#define A7XX_RBBM_INT_0_MASK_UCHETRAPINTERRUPT			0x02000000
+#define A7XX_RBBM_INT_0_MASK_DEBUGBUSINTERRUPT0			0x04000000
+#define A7XX_RBBM_INT_0_MASK_DEBUGBUSINTERRUPT1			0x08000000
+#define A7XX_RBBM_INT_0_MASK_TSBWRITEERROR			0x10000000
+#define A7XX_RBBM_INT_0_MASK_ISDBCPUIRQ				0x40000000
+#define A7XX_RBBM_INT_0_MASK_ISDBUNDERDEBUG			0x80000000
+
+#define REG_A7XX_RBBM_INT_2_MASK				0x0000003a
+
+#define REG_A7XX_RBBM_SP_HYST_CNT				0x00000042
+
+#define REG_A7XX_RBBM_SW_RESET_CMD				0x00000043
+
+#define REG_A7XX_RBBM_RAC_THRESHOLD_CNT				0x00000044
+
+#define REG_A7XX_RBBM_CLOCK_CNTL				0x000000ae
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_SP0				0x000000b0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_SP0				0x000000b4
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_SP0				0x000000b8
+
+#define REG_A7XX_RBBM_CLOCK_HYST_SP0				0x000000bc
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_TP0				0x000000c0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_TP0				0x000000c4
+
+#define REG_A7XX_RBBM_CLOCK_CNTL3_TP0				0x000000c8
+
+#define REG_A7XX_RBBM_CLOCK_CNTL4_TP0				0x000000cc
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_TP0				0x000000d0
+
+#define REG_A7XX_RBBM_CLOCK_DELAY2_TP0				0x000000d4
+
+#define REG_A7XX_RBBM_CLOCK_DELAY3_TP0				0x000000d8
+
+#define REG_A7XX_RBBM_CLOCK_DELAY4_TP0				0x000000dc
+
+#define REG_A7XX_RBBM_CLOCK_HYST_TP0				0x000000e0
+
+#define REG_A7XX_RBBM_CLOCK_HYST2_TP0				0x000000e4
+
+#define REG_A7XX_RBBM_CLOCK_HYST3_TP0				0x000000e8
+
+#define REG_A7XX_RBBM_CLOCK_HYST4_TP0				0x000000ec
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_RB0				0x000000f0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_RB0				0x000000f4
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_CCU0				0x000000f8
+
+#define REG_A7XX_RBBM_CLOCK_HYST_RB_CCU0			0x00000100
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_RAC				0x00000104
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_RAC				0x00000105
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_RAC				0x00000106
+
+#define REG_A7XX_RBBM_CLOCK_HYST_RAC				0x00000107
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM			0x00000108
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x00000109
+
+#define REG_A7XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x0000010a
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_UCHE				0x0000010b
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_UCHE				0x0000010f
+
+#define REG_A7XX_RBBM_CLOCK_HYST_UCHE				0x00000110
+
+#define REG_A7XX_RBBM_CLOCK_MODE_VFD				0x00000111
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_VFD				0x00000112
+
+#define REG_A7XX_RBBM_CLOCK_HYST_VFD				0x00000113
+
+#define REG_A7XX_RBBM_CLOCK_MODE_GPC				0x00000114
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_GPC				0x00000115
+
+#define REG_A7XX_RBBM_CLOCK_HYST_GPC				0x00000116
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_HLSQ_2			0x00000117
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_GMU_GX				0x00000118
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_GMU_GX			0x00000119
+
+#define REG_A7XX_RBBM_CLOCK_HYST_GMU_GX				0x0000011a
+
+#define REG_A7XX_RBBM_CLOCK_MODE_HLSQ				0x0000011b
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_HLSQ				0x0000011c
+
+#define REG_A7XX_RBBM_CLOCK_HYST_HLSQ				0x0000011d
+
+#define REG_A7XX_RBBM_INT_0_STATUS				0x00000201
+
+#define REG_A7XX_RBBM_STATUS					0x00000210
+#define A7XX_RBBM_STATUS_CPAHBBUSYCXMASTER			0x00000001
+#define A7XX_RBBM_STATUS_CPAHBBUSYCPMASTER			0x00000002
+#define A7XX_RBBM_STATUS_CPBUSY					0x00000004
+#define A7XX_RBBM_STATUS_GFXDBGCBUSY				0x00000008
+#define A7XX_RBBM_STATUS_VBIFGXFPARTBUSY			0x00000010
+#define A7XX_RBBM_STATUS_TSEBUSY				0x00000020
+#define A7XX_RBBM_STATUS_RASBUSY				0x00000040
+#define A7XX_RBBM_STATUS_RBBUSY					0x00000080
+#define A7XX_RBBM_STATUS_CCUBUSY				0x00000100
+#define A7XX_RBBM_STATUS_A2DBUSY				0x00000200
+#define A7XX_RBBM_STATUS_LRZBUSY				0x00000400
+#define A7XX_RBBM_STATUS_COMDCOMBUSY				0x00000800
+#define A7XX_RBBM_STATUS_PCDCALLBUSY				0x00001000
+#define A7XX_RBBM_STATUS_PCVSDBUSY				0x00002000
+#define A7XX_RBBM_STATUS_TESSBUSY				0x00004000
+#define A7XX_RBBM_STATUS_VFDBUSY				0x00008000
+#define A7XX_RBBM_STATUS_VPCBUSY				0x00010000
+#define A7XX_RBBM_STATUS_UCHEBUSY				0x00020000
+#define A7XX_RBBM_STATUS_SPBUSY					0x00040000
+#define A7XX_RBBM_STATUS_TPL1BUSY				0x00080000
+#define A7XX_RBBM_STATUS_VSCBUSY				0x00100000
+#define A7XX_RBBM_STATUS_HLSQBUSY				0x00200000
+#define A7XX_RBBM_STATUS_GPUBUSYIGNAHBCP			0x00400000
+#define A7XX_RBBM_STATUS_GPUBUSYIGNAHB				0x00800000
+
+#define REG_A7XX_RBBM_STATUS3					0x00000213
+
+#define REG_A7XX_RBBM_CLOCK_MODE_CP				0x00000260
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_LRZ				0x00000284
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_GRAS			0x00000285
+
+#define REG_A7XX_RBBM_CLOCK_MODE2_GRAS				0x00000286
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_VFD				0x00000287
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_GPC				0x00000288
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CP(uint32_t i0) { return 0x00000300 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RBBM(uint32_t i0) { return 0x0000031c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_PC(uint32_t i0) { return 0x00000324 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VFD(uint32_t i0) { return 0x00000334 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_HLSQ(uint32_t i0) { return 0x00000344 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VPC(uint32_t i0) { return 0x00000350 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CCU(uint32_t i0) { return 0x0000035c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_TSE(uint32_t i0) { return 0x00000366 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RAS(uint32_t i0) { return 0x0000036e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_UCHE(uint32_t i0) { return 0x00000376 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_TP(uint32_t i0) { return 0x0000038e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_SP(uint32_t i0) { return 0x000003a6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RB(uint32_t i0) { return 0x000003d6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VSC(uint32_t i0) { return 0x000003e6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_LRZ(uint32_t i0) { return 0x000003ea + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CMP(uint32_t i0) { return 0x000003f2 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_UFC(uint32_t i0) { return 0x000003fa + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_HLSQ(uint32_t i0) { return 0x00000410 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_CP(uint32_t i0) { return 0x0000041c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_SP(uint32_t i0) { return 0x0000042a + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_TP(uint32_t i0) { return 0x00000442 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_UFC(uint32_t i0) { return 0x0000044e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_PC(uint32_t i0) { return 0x00000460 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VFD(uint32_t i0) { return 0x00000470 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VPC(uint32_t i0) { return 0x00000480 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_TSE(uint32_t i0) { return 0x0000048c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_RAS(uint32_t i0) { return 0x00000494 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_LRZ(uint32_t i0) { return 0x0000049c + 0x2*i0; }
+
+#define REG_A7XX_RBBM_PERFCTR_CNTL				0x00000500
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RBBM_SEL(uint32_t i0) { return 0x00000507 + 0x1*i0; }
+
+#define REG_A7XX_RBBM_PERFCTR_GPU_BUSY_MASKED			0x0000050b
+
+#define REG_A7XX_RBBM_ISDB_CNT					0x00000533
+
+#define REG_A7XX_RBBM_NC_MODE_CNTL				0x00000534
+
+#define REG_A7XX_RBBM_SNAPSHOT_STATUS				0x00000535
+
+#define REG_A7XX_CP_RB_BASE					0x00000800
+
+#define REG_A7XX_CP_RB_CNTL					0x00000802
+
+#define REG_A7XX_CP_RB_RPTR_ADDR				0x00000804
+
+#define REG_A7XX_CP_RB_RPTR					0x00000806
+
+#define REG_A7XX_CP_RB_WPTR					0x00000807
+
+#define REG_A7XX_CP_SQE_CNTL					0x00000808
+
+#define REG_A7XX_CP_CP2GMU_STATUS				0x00000812
+
+#define REG_A7XX_CP_HW_FAULT					0x00000821
+
+#define REG_A7XX_CP_INTERRUPT_STATUS				0x00000823
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERROR			0x00000001
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERROR			0x00000002
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULT			0x00000004
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTION		0x00000010
+#define A7XX_CP_INTERRUPT_STATUS_VSDPARITYERROR			0x00000040
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTION		0x00000080
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERRORLPAC		0x00000100
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERRORLPAC			0x00000200
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULTLPAC			0x00000400
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTIONLPAC		0x00000800
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTIONLPAC		0x00001000
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERRORBV			0x00002000
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERRORBV			0x00004000
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULTBV			0x00008000
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTIONBV		0x00010000
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTIONBV		0x00020000
+
+#define REG_A7XX_CP_PROTECT_STATUS				0x00000824
+
+#define REG_A7XX_CP_STATUS_1					0x00000825
+
+#define REG_A7XX_CP_SQE_INSTR_BASE				0x00000830
+
+#define REG_A7XX_CP_MISC_CNTL					0x00000840
+
+#define REG_A7XX_CP_CHICKEN_DBG					0x00000841
+
+#define REG_A7XX_CP_DBG_ECO_CNTL				0x00000843
+
+#define REG_A7XX_CP_APRIV_CNTL					0x00000844
+
+#define REG_A7XX_CP_PROTECT_CNTL				0x0000084f
+
+static inline uint32_t REG_A7XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000850 + 0x1*i0; }
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_CNTL				0x000008a0
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_SMMU_INFO			0x000008a1
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR	0x000008a3
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR	0x000008a5
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR	0x000008a7
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_LEVEL_STATUS			0x000008ab
+
+static inline uint32_t REG_A7XX_CP_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008d0 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_CP_BV_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008e0 + 0x1*i0; }
+
+#define REG_A7XX_CP_CRASH_SCRIPT_BASE				0x00000900
+
+#define REG_A7XX_CP_CRASH_DUMP_CNTL				0x00000902
+
+#define REG_A7XX_CP_CRASH_DUMP_STATUS				0x00000903
+
+#define REG_A7XX_CP_SQE_STAT_ADDR				0x00000908
+
+#define REG_A7XX_CP_SQE_STAT_DATA				0x00000909
+
+#define REG_A7XX_CP_DRAW_STATE_ADDR				0x0000090a
+
+#define REG_A7XX_CP_DRAW_STATE_DATA				0x0000090b
+
+#define REG_A7XX_CP_ROQ_DBG_ADDR				0x0000090c
+
+#define REG_A7XX_CP_ROQ_DBG_DATA				0x0000090d
+
+#define REG_A7XX_CP_MEM_POOL_DBG_ADDR				0x0000090e
+
+#define REG_A7XX_CP_MEM_POOL_DBG_DATA				0x0000090f
+
+#define REG_A7XX_CP_SQE_UCODE_DBG_ADDR				0x00000910
+
+#define REG_A7XX_CP_SQE_UCODE_DBG_DATA				0x00000911
+
+#define REG_A7XX_CP_IB1_BASE					0x00000928
+
+#define REG_A7XX_CP_IB1_REM_SIZE				0x0000092a
+
+#define REG_A7XX_CP_IB2_BASE					0x0000092b
+
+#define REG_A7XX_CP_IB2_REM_SIZE				0x0000092d
+
+#define REG_A7XX_CP_ALWAYS_ON_COUNTER				0x00000980
+
+#define REG_A7XX_CP_AHB_CNTL					0x0000098d
+
+#define REG_A7XX_CP_APERTURE_CNTL_HOST				0x00000a00
+
+#define REG_A7XX_CP_APERTURE_CNTL_CD				0x00000a03
+
+#define REG_A7XX_CP_BV_PROTECT_STATUS				0x00000a61
+
+#define REG_A7XX_CP_BV_HW_FAULT					0x00000a64
+
+#define REG_A7XX_CP_BV_DRAW_STATE_ADDR				0x00000a81
+
+#define REG_A7XX_CP_BV_DRAW_STATE_DATA				0x00000a82
+
+#define REG_A7XX_CP_BV_ROQ_DBG_ADDR				0x00000a83
+
+#define REG_A7XX_CP_BV_ROQ_DBG_DATA				0x00000a84
+
+#define REG_A7XX_CP_BV_SQE_UCODE_DBG_ADDR			0x00000a85
+
+#define REG_A7XX_CP_BV_SQE_UCODE_DBG_DATA			0x00000a86
+
+#define REG_A7XX_CP_BV_SQE_STAT_ADDR				0x00000a87
+
+#define REG_A7XX_CP_BV_SQE_STAT_DATA				0x00000a88
+
+#define REG_A7XX_CP_BV_MEM_POOL_DBG_ADDR			0x00000a96
+
+#define REG_A7XX_CP_BV_MEM_POOL_DBG_DATA			0x00000a97
+
+#define REG_A7XX_CP_BV_RB_RPTR_ADDR				0x00000a98
+
+#define REG_A7XX_CP_RESOURCE_TBL_DBG_ADDR			0x00000a9a
+
+#define REG_A7XX_CP_RESOURCE_TBL_DBG_DATA			0x00000a9b
+
+#define REG_A7XX_CP_BV_APRIV_CNTL				0x00000ad0
+
+#define REG_A7XX_CP_BV_CHICKEN_DBG				0x00000ada
+
+#define REG_A7XX_CP_LPAC_DRAW_STATE_ADDR			0x00000b0a
+
+#define REG_A7XX_CP_LPAC_DRAW_STATE_DATA			0x00000b0b
+
+#define REG_A7XX_CP_LPAC_ROQ_DBG_ADDR				0x00000b0c
+
+#define REG_A7XX_CP_SQE_AC_UCODE_DBG_ADDR			0x00000b27
+
+#define REG_A7XX_CP_SQE_AC_UCODE_DBG_DATA			0x00000b28
+
+#define REG_A7XX_CP_SQE_AC_STAT_ADDR				0x00000b29
+
+#define REG_A7XX_CP_SQE_AC_STAT_DATA				0x00000b2a
+
+#define REG_A7XX_CP_LPAC_APRIV_CNTL				0x00000b31
+
+#define REG_A7XX_CP_LPAC_ROQ_DBG_DATA				0x00000b35
+
+#define REG_A7XX_CP_LPAC_FIFO_DBG_DATA				0x00000b36
+
+#define REG_A7XX_CP_LPAC_FIFO_DBG_ADDR				0x00000b40
+
+static inline uint32_t REG_A7XX_VSC_PERFCTR_VSC_SEL(uint32_t i0) { return 0x00000cd8 + 0x1*i0; }
+
+#define REG_A7XX_UCHE_MODE_CNTL					0x00000e01
+
+#define REG_A7XX_UCHE_WRITE_THRU_BASE				0x00000e07
+
+#define REG_A7XX_UCHE_TRAP_BASE					0x00000e09
+
+#define REG_A7XX_UCHE_GMEM_RANGE_MIN				0x00000e0b
+
+#define REG_A7XX_UCHE_GMEM_RANGE_MAX				0x00000e0d
+
+#define REG_A7XX_UCHE_CACHE_WAYS				0x00000e17
+
+#define REG_A7XX_UCHE_CLIENT_PF					0x00000e19
+
+static inline uint32_t REG_A7XX_UCHE_PERFCTR_UCHE_SEL(uint32_t i0) { return 0x00000e1c + 0x1*i0; }
+
+#define REG_A7XX_UCHE_GBIF_GX_CONFIG				0x00000e3a
+
+#define REG_A7XX_UCHE_CMDQ_CONFIG				0x00000e3c
+
+#define REG_A7XX_PDC_GPU_ENABLE_PDC				0x00001140
+
+#define REG_A7XX_PDC_GPU_SEQ_START_ADDR				0x00001148
+
+#define REG_A7XX_VBIF_XIN_HALT_CTRL1				0x00003081
+
+#define REG_A7XX_VBIF_TEST_BUS_OUT_CTRL				0x00003084
+
+#define REG_A7XX_VBIF_TEST_BUS1_CTRL0				0x00003085
+
+#define REG_A7XX_VBIF_TEST_BUS1_CTRL1				0x00003086
+
+#define REG_A7XX_VBIF_TEST_BUS2_CTRL0				0x00003087
+
+#define REG_A7XX_VBIF_TEST_BUS2_CTRL1				0x00003088
+
+#define REG_A7XX_VBIF_TEST_BUS_OUT				0x0000308c
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL0				0x000030d0
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL1				0x000030d1
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL2				0x000030d2
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL3				0x000030d3
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW0				0x000030d8
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW1				0x000030d9
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW2				0x000030da
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW3				0x000030db
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH0				0x000030e0
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH1				0x000030e1
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH2				0x000030e2
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH3				0x000030e3
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW0				0x00003110
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW1				0x00003111
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW2				0x00003112
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH0			0x00003118
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH1			0x00003119
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH2			0x0000311a
+
+#define REG_A7XX_GBIF_SCACHE_CNTL0				0x00003c01
+
+#define REG_A7XX_GBIF_SCACHE_CNTL1				0x00003c02
+
+#define REG_A7XX_GBIF_QSB_SIDE0					0x00003c03
+
+#define REG_A7XX_GBIF_QSB_SIDE1					0x00003c04
+
+#define REG_A7XX_GBIF_QSB_SIDE2					0x00003c05
+
+#define REG_A7XX_GBIF_QSB_SIDE3					0x00003c06
+
+#define REG_A7XX_GBIF_HALT					0x00003c45
+
+#define REG_A7XX_GBIF_HALT_ACK					0x00003c46
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_EN				0x00003cc0
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_CLR				0x00003cc1
+
+#define REG_A7XX_GBIF_PERF_CNT_SEL				0x00003cc2
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_SEL				0x00003cc3
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW0				0x00003cc4
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW1				0x00003cc5
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW2				0x00003cc6
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW3				0x00003cc7
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH0				0x00003cc8
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH1				0x00003cc9
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH2				0x00003cca
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH3				0x00003ccb
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW0				0x00003ccc
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW1				0x00003ccd
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW2				0x00003cce
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH0				0x00003ccf
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH1				0x00003cd0
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH2				0x00003cd1
+
+#define REG_A7XX_GRAS_NC_MODE_CNTL				0x00008602
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_TSE_SEL(uint32_t i0) { return 0x00008610 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_RAS_SEL(uint32_t i0) { return 0x00008614 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_LRZ_SEL(uint32_t i0) { return 0x00008618 + 0x1*i0; }
+
+#define REG_A7XX_RB_NC_MODE_CNTL				0x00008e08
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_RB_SEL(uint32_t i0) { return 0x00008e10 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_CCU_SEL(uint32_t i0) { return 0x00008e18 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_CMP_SEL(uint32_t i0) { return 0x00008e2c + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_UFC_SEL(uint32_t i0) { return 0x00008e30 + 0x1*i0; }
+
+#define REG_A7XX_RB_RB_SUB_BLOCK_SEL_CNTL_HOST			0x00008e3b
+
+#define REG_A7XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD			0x00008e3d
+
+#define REG_A7XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE		0x00008e50
+
+static inline uint32_t REG_A7XX_VPC_PERFCTR_VPC_SEL(uint32_t i0) { return 0x0000960b + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_PC_PERFCTR_PC_SEL(uint32_t i0) { return 0x00009e42 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_VFD_PERFCTR_VFD_SEL(uint32_t i0) { return 0x0000a610 + 0x1*i0; }
+
+#define REG_A7XX_SP_NC_MODE_CNTL				0x0000ae02
+
+static inline uint32_t REG_A7XX_SP_PERFCTR_HLSQ_SEL(uint32_t i0) { return 0x0000ae60 + 0x1*i0; }
+
+#define REG_A7XX_SP_READ_SEL					0x0000ae6d
+
+static inline uint32_t REG_A7XX_SP_PERFCTR_SP_SEL(uint32_t i0) { return 0x0000ae80 + 0x1*i0; }
+
+#define REG_A7XX_TPL1_NC_MODE_CNTL				0x0000b604
+
+static inline uint32_t REG_A7XX_TPL1_PERFCTR_TP_SEL(uint32_t i0) { return 0x0000b610 + 0x1*i0; }
+
+#define REG_A7XX_SP_AHB_READ_APERTURE				0x0000c000
+
+#define REG_A7XX_RBBM_SECVID_TRUST_CNTL				0x0000f400
+
+#define REG_A7XX_RBBM_SECVID_TSB_TRUSTED_BASE			0x0000f800
+
+#define REG_A7XX_RBBM_SECVID_TSB_TRUSTED_SIZE			0x0000f802
+
+#define REG_A7XX_RBBM_SECVID_TSB_CNTL				0x0000f803
+
+#define REG_A7XX_RBBM_SECVID_TSB_STATUS				0x0000fc00
+
+
+#endif /* A7XX_XML */
diff --git a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
index 7aecf920f9b90..9eeedd261b733 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
+++ b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
@@ -8,19 +8,20 @@ This file was generated by the rules-ng-ng headergen tool in this git repository
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno.xml                     (    594 bytes, from 2021-01-30 18:25:22)
-- /home/robclark/tmp/mesa/src/freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-12-31 19:26:32)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-06-21 15:24:24)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_common.xml       (  14609 bytes, from 2021-11-24 23:05:10)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_pm4.xml          (  69086 bytes, from 2022-03-03 16:41:33)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-11-24 23:05:10)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a4xx.xml                ( 113358 bytes, from 2022-01-31 23:06:21)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-01-31 23:06:21)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-03 16:41:33)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-07-22 15:21:56)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2021-01-30 18:25:22)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2021-07-22 15:21:56)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2021-07-22 15:21:56)
+- freedreno/registers/adreno.xml                     (    627 bytes, from 2022-03-27 15:04:47)
+- freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/adreno_common.xml       (  14631 bytes, from 2022-03-27 14:52:08)
+- freedreno/registers/adreno/adreno_pm4.xml          (  70177 bytes, from 2022-03-27 20:02:31)
+- freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-08-27 13:03:56)
+- freedreno/registers/adreno/a4xx.xml                ( 113474 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-03-21 16:05:18)
+- freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/a7xx.xml                (  20004 bytes, from 2022-03-27 20:01:42)
+- freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2022-03-22 19:23:46)
 
 Copyright (C) 2013-2022 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
@@ -301,6 +302,8 @@ enum adreno_pm4_type3_packets {
 	CP_REG_WRITE = 109,
 	CP_START_BIN = 80,
 	CP_END_BIN = 81,
+	CP_WAIT_TIMESTAMP = 20,
+	CP_THREAD_CONTROL = 23,
 };
 
 enum adreno_state_block {
@@ -482,6 +485,12 @@ enum reg_tracker {
 	UNK_EVENT_WRITE = 4,
 };
 
+enum cp_thread {
+	CP_SET_THREAD_BR = 1,
+	CP_SET_THREAD_BV = 2,
+	CP_SET_THREAD_BOTH = 3,
+};
+
 #define REG_CP_LOAD_STATE_0					0x00000000
 #define CP_LOAD_STATE_0_DST_OFF__MASK				0x0000ffff
 #define CP_LOAD_STATE_0_DST_OFF__SHIFT				0
@@ -2361,5 +2370,33 @@ static inline uint32_t CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK(uint32_t val)
 
 #define REG_CP_START_BIN_BODY_DWORDS				0x00000004
 
+#define REG_CP_THREAD_CONTROL_0					0x00000000
+#define CP_THREAD_CONTROL_0_THREAD__MASK			0x00000003
+#define CP_THREAD_CONTROL_0_THREAD__SHIFT			0
+static inline uint32_t CP_THREAD_CONTROL_0_THREAD(enum cp_thread val)
+{
+	return ((val) << CP_THREAD_CONTROL_0_THREAD__SHIFT) & CP_THREAD_CONTROL_0_THREAD__MASK;
+}
+#define CP_THREAD_CONTROL_0_CONCURRENT_BIN_DISABLE		0x08000000
+#define CP_THREAD_CONTROL_0_SYNC_THREADS			0x80000000
+
+#define REG_CP_WAIT_TIMESTAMP_0					0x00000000
+#define CP_WAIT_TIMESTAMP_0_REF__MASK				0x00000003
+#define CP_WAIT_TIMESTAMP_0_REF__SHIFT				0
+static inline uint32_t CP_WAIT_TIMESTAMP_0_REF(uint32_t val)
+{
+	return ((val) << CP_WAIT_TIMESTAMP_0_REF__SHIFT) & CP_WAIT_TIMESTAMP_0_REF__MASK;
+}
+#define CP_WAIT_TIMESTAMP_0_MEMSPACE__MASK			0x00000010
+#define CP_WAIT_TIMESTAMP_0_MEMSPACE__SHIFT			4
+static inline uint32_t CP_WAIT_TIMESTAMP_0_MEMSPACE(uint32_t val)
+{
+	return ((val) << CP_WAIT_TIMESTAMP_0_MEMSPACE__SHIFT) & CP_WAIT_TIMESTAMP_0_MEMSPACE__MASK;
+}
+
+#define REG_CP_WAIT_TIMESTAMP_ADDR				0x00000001
+
+#define REG_CP_WAIT_TIMESTAMP_VALUE				0x00000003
+
 
 #endif /* ADRENO_PM4_XML */
-- 
2.26.1


WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Marek <jonathan@marek.ca>
To: freedreno@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>,
	"open list:DRM DRIVER FOR MSM ADRENO GPU"
	<linux-arm-msm@vger.kernel.org>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	"open list:DRM DRIVER FOR MSM ADRENO GPU"
	<dri-devel@lists.freedesktop.org>,
	open list <linux-kernel@vger.kernel.org>,
	Sean Paul <sean@poorly.run>
Subject: [PATCH 3/4] drm/msm/adreno: update headers
Date: Sun, 27 Mar 2022 16:25:56 -0400	[thread overview]
Message-ID: <20220327202643.4053-4-jonathan@marek.ca> (raw)
In-Reply-To: <20220327202643.4053-1-jonathan@marek.ca>

Adds a7xx changes for the kernel driver.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
 drivers/gpu/drm/msm/adreno/a7xx.xml.h       | 666 ++++++++++++++++++++
 drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h |  63 +-
 2 files changed, 716 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/adreno/a7xx.xml.h

diff --git a/drivers/gpu/drm/msm/adreno/a7xx.xml.h b/drivers/gpu/drm/msm/adreno/a7xx.xml.h
new file mode 100644
index 0000000000000..45ef4289ac52b
--- /dev/null
+++ b/drivers/gpu/drm/msm/adreno/a7xx.xml.h
@@ -0,0 +1,666 @@
+#ifndef A7XX_XML
+#define A7XX_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://github.com/freedreno/envytools/
+git clone https://github.com/freedreno/envytools.git
+
+The rules-ng-ng source files this header was generated from are:
+- freedreno/registers/adreno.xml                     (    627 bytes, from 2022-03-27 15:04:47)
+- freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/adreno_common.xml       (  14631 bytes, from 2022-03-27 14:52:08)
+- freedreno/registers/adreno/adreno_pm4.xml          (  70334 bytes, from 2022-03-27 20:01:26)
+- freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-08-27 13:03:56)
+- freedreno/registers/adreno/a4xx.xml                ( 113474 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-03-21 16:05:18)
+- freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/a7xx.xml                (  20004 bytes, from 2022-03-27 20:01:42)
+- freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2022-03-22 19:23:46)
+
+Copyright (C) 2013-2022 by the following authors:
+- Rob Clark <robdclark@gmail.com> (robclark)
+- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+
+enum a7xx_event {
+	CCU_INVALIDATE_DEPTH = 24,
+	CCU_INVALIDATE_COLOR = 25,
+	CCU_RESOLVE_CLEAN = 26,
+	CCU_FLUSH_DEPTH = 28,
+	CCU_FLUSH_COLOR = 29,
+	CCU_RESOLVE = 30,
+	CCU_END_RESOLVE_GROUP = 31,
+	CCU_CLEAN_DEPTH = 32,
+	CCU_CLEAN_COLOR = 33,
+	CACHE_RESET = 48,
+	CACHE_CLEAN = 49,
+	CACHE_FLUSH7 = 50,
+	CACHE_INVALIDATE7 = 51,
+};
+
+#define REG_A7XX_RBBM_GBIF_CLIENT_QOS_CNTL			0x00000011
+
+#define REG_A7XX_RBBM_GBIF_HALT					0x00000016
+
+#define REG_A7XX_RBBM_GBIF_HALT_ACK				0x00000017
+
+#define REG_A7XX_RBBM_INTERFACE_HANG_INT_CNTL			0x0000001f
+
+#define REG_A7XX_RBBM_INT_CLEAR_CMD				0x00000037
+
+#define REG_A7XX_RBBM_INT_0_MASK				0x00000038
+#define A7XX_RBBM_INT_0_MASK_GPUIDLE				0x00000001
+#define A7XX_RBBM_INT_0_MASK_AHBERROR				0x00000002
+#define A7XX_RBBM_INT_0_MASK_CPIPCINT0				0x00000010
+#define A7XX_RBBM_INT_0_MASK_CPIPCINT1				0x00000020
+#define A7XX_RBBM_INT_0_MASK_ATBASYNCFIFOOVERFLOW		0x00000040
+#define A7XX_RBBM_INT_0_MASK_GPCERROR				0x00000080
+#define A7XX_RBBM_INT_0_MASK_SWINTERRUPT			0x00000100
+#define A7XX_RBBM_INT_0_MASK_HWERROR				0x00000200
+#define A7XX_RBBM_INT_0_MASK_CCU_CLEAN_DEPTH_TS			0x00000400
+#define A7XX_RBBM_INT_0_MASK_CCU_CLEAN_COLOR_TS			0x00000800
+#define A7XX_RBBM_INT_0_MASK_CCU_RESOLVE_CLEAN_TS		0x00001000
+#define A7XX_RBBM_INT_0_MASK_PM4CPINTERRUPT			0x00008000
+#define A7XX_RBBM_INT_0_MASK_PM4CPINTERRUPTLPAC			0x00010000
+#define A7XX_RBBM_INT_0_MASK_RB_DONE_TS				0x00020000
+#define A7XX_RBBM_INT_0_MASK_CACHE_CLEAN_TS			0x00100000
+#define A7XX_RBBM_INT_0_MASK_CACHE_CLEAN_TS_LPAC		0x00200000
+#define A7XX_RBBM_INT_0_MASK_ATBBUSOVERFLOW			0x00400000
+#define A7XX_RBBM_INT_0_MASK_HANGDETECTINTERRUPT		0x00800000
+#define A7XX_RBBM_INT_0_MASK_OUTOFBOUNDACCESS			0x01000000
+#define A7XX_RBBM_INT_0_MASK_UCHETRAPINTERRUPT			0x02000000
+#define A7XX_RBBM_INT_0_MASK_DEBUGBUSINTERRUPT0			0x04000000
+#define A7XX_RBBM_INT_0_MASK_DEBUGBUSINTERRUPT1			0x08000000
+#define A7XX_RBBM_INT_0_MASK_TSBWRITEERROR			0x10000000
+#define A7XX_RBBM_INT_0_MASK_ISDBCPUIRQ				0x40000000
+#define A7XX_RBBM_INT_0_MASK_ISDBUNDERDEBUG			0x80000000
+
+#define REG_A7XX_RBBM_INT_2_MASK				0x0000003a
+
+#define REG_A7XX_RBBM_SP_HYST_CNT				0x00000042
+
+#define REG_A7XX_RBBM_SW_RESET_CMD				0x00000043
+
+#define REG_A7XX_RBBM_RAC_THRESHOLD_CNT				0x00000044
+
+#define REG_A7XX_RBBM_CLOCK_CNTL				0x000000ae
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_SP0				0x000000b0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_SP0				0x000000b4
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_SP0				0x000000b8
+
+#define REG_A7XX_RBBM_CLOCK_HYST_SP0				0x000000bc
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_TP0				0x000000c0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_TP0				0x000000c4
+
+#define REG_A7XX_RBBM_CLOCK_CNTL3_TP0				0x000000c8
+
+#define REG_A7XX_RBBM_CLOCK_CNTL4_TP0				0x000000cc
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_TP0				0x000000d0
+
+#define REG_A7XX_RBBM_CLOCK_DELAY2_TP0				0x000000d4
+
+#define REG_A7XX_RBBM_CLOCK_DELAY3_TP0				0x000000d8
+
+#define REG_A7XX_RBBM_CLOCK_DELAY4_TP0				0x000000dc
+
+#define REG_A7XX_RBBM_CLOCK_HYST_TP0				0x000000e0
+
+#define REG_A7XX_RBBM_CLOCK_HYST2_TP0				0x000000e4
+
+#define REG_A7XX_RBBM_CLOCK_HYST3_TP0				0x000000e8
+
+#define REG_A7XX_RBBM_CLOCK_HYST4_TP0				0x000000ec
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_RB0				0x000000f0
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_RB0				0x000000f4
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_CCU0				0x000000f8
+
+#define REG_A7XX_RBBM_CLOCK_HYST_RB_CCU0			0x00000100
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_RAC				0x00000104
+
+#define REG_A7XX_RBBM_CLOCK_CNTL2_RAC				0x00000105
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_RAC				0x00000106
+
+#define REG_A7XX_RBBM_CLOCK_HYST_RAC				0x00000107
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM			0x00000108
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x00000109
+
+#define REG_A7XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x0000010a
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_UCHE				0x0000010b
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_UCHE				0x0000010f
+
+#define REG_A7XX_RBBM_CLOCK_HYST_UCHE				0x00000110
+
+#define REG_A7XX_RBBM_CLOCK_MODE_VFD				0x00000111
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_VFD				0x00000112
+
+#define REG_A7XX_RBBM_CLOCK_HYST_VFD				0x00000113
+
+#define REG_A7XX_RBBM_CLOCK_MODE_GPC				0x00000114
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_GPC				0x00000115
+
+#define REG_A7XX_RBBM_CLOCK_HYST_GPC				0x00000116
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_HLSQ_2			0x00000117
+
+#define REG_A7XX_RBBM_CLOCK_CNTL_GMU_GX				0x00000118
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_GMU_GX			0x00000119
+
+#define REG_A7XX_RBBM_CLOCK_HYST_GMU_GX				0x0000011a
+
+#define REG_A7XX_RBBM_CLOCK_MODE_HLSQ				0x0000011b
+
+#define REG_A7XX_RBBM_CLOCK_DELAY_HLSQ				0x0000011c
+
+#define REG_A7XX_RBBM_CLOCK_HYST_HLSQ				0x0000011d
+
+#define REG_A7XX_RBBM_INT_0_STATUS				0x00000201
+
+#define REG_A7XX_RBBM_STATUS					0x00000210
+#define A7XX_RBBM_STATUS_CPAHBBUSYCXMASTER			0x00000001
+#define A7XX_RBBM_STATUS_CPAHBBUSYCPMASTER			0x00000002
+#define A7XX_RBBM_STATUS_CPBUSY					0x00000004
+#define A7XX_RBBM_STATUS_GFXDBGCBUSY				0x00000008
+#define A7XX_RBBM_STATUS_VBIFGXFPARTBUSY			0x00000010
+#define A7XX_RBBM_STATUS_TSEBUSY				0x00000020
+#define A7XX_RBBM_STATUS_RASBUSY				0x00000040
+#define A7XX_RBBM_STATUS_RBBUSY					0x00000080
+#define A7XX_RBBM_STATUS_CCUBUSY				0x00000100
+#define A7XX_RBBM_STATUS_A2DBUSY				0x00000200
+#define A7XX_RBBM_STATUS_LRZBUSY				0x00000400
+#define A7XX_RBBM_STATUS_COMDCOMBUSY				0x00000800
+#define A7XX_RBBM_STATUS_PCDCALLBUSY				0x00001000
+#define A7XX_RBBM_STATUS_PCVSDBUSY				0x00002000
+#define A7XX_RBBM_STATUS_TESSBUSY				0x00004000
+#define A7XX_RBBM_STATUS_VFDBUSY				0x00008000
+#define A7XX_RBBM_STATUS_VPCBUSY				0x00010000
+#define A7XX_RBBM_STATUS_UCHEBUSY				0x00020000
+#define A7XX_RBBM_STATUS_SPBUSY					0x00040000
+#define A7XX_RBBM_STATUS_TPL1BUSY				0x00080000
+#define A7XX_RBBM_STATUS_VSCBUSY				0x00100000
+#define A7XX_RBBM_STATUS_HLSQBUSY				0x00200000
+#define A7XX_RBBM_STATUS_GPUBUSYIGNAHBCP			0x00400000
+#define A7XX_RBBM_STATUS_GPUBUSYIGNAHB				0x00800000
+
+#define REG_A7XX_RBBM_STATUS3					0x00000213
+
+#define REG_A7XX_RBBM_CLOCK_MODE_CP				0x00000260
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_LRZ				0x00000284
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_GRAS			0x00000285
+
+#define REG_A7XX_RBBM_CLOCK_MODE2_GRAS				0x00000286
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_VFD				0x00000287
+
+#define REG_A7XX_RBBM_CLOCK_MODE_BV_GPC				0x00000288
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CP(uint32_t i0) { return 0x00000300 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RBBM(uint32_t i0) { return 0x0000031c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_PC(uint32_t i0) { return 0x00000324 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VFD(uint32_t i0) { return 0x00000334 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_HLSQ(uint32_t i0) { return 0x00000344 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VPC(uint32_t i0) { return 0x00000350 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CCU(uint32_t i0) { return 0x0000035c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_TSE(uint32_t i0) { return 0x00000366 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RAS(uint32_t i0) { return 0x0000036e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_UCHE(uint32_t i0) { return 0x00000376 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_TP(uint32_t i0) { return 0x0000038e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_SP(uint32_t i0) { return 0x000003a6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RB(uint32_t i0) { return 0x000003d6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_VSC(uint32_t i0) { return 0x000003e6 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_LRZ(uint32_t i0) { return 0x000003ea + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_CMP(uint32_t i0) { return 0x000003f2 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_UFC(uint32_t i0) { return 0x000003fa + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_HLSQ(uint32_t i0) { return 0x00000410 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_CP(uint32_t i0) { return 0x0000041c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_SP(uint32_t i0) { return 0x0000042a + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_TP(uint32_t i0) { return 0x00000442 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR2_UFC(uint32_t i0) { return 0x0000044e + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_PC(uint32_t i0) { return 0x00000460 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VFD(uint32_t i0) { return 0x00000470 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VPC(uint32_t i0) { return 0x00000480 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_TSE(uint32_t i0) { return 0x0000048c + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_RAS(uint32_t i0) { return 0x00000494 + 0x2*i0; }
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_LRZ(uint32_t i0) { return 0x0000049c + 0x2*i0; }
+
+#define REG_A7XX_RBBM_PERFCTR_CNTL				0x00000500
+
+static inline uint32_t REG_A7XX_RBBM_PERFCTR_RBBM_SEL(uint32_t i0) { return 0x00000507 + 0x1*i0; }
+
+#define REG_A7XX_RBBM_PERFCTR_GPU_BUSY_MASKED			0x0000050b
+
+#define REG_A7XX_RBBM_ISDB_CNT					0x00000533
+
+#define REG_A7XX_RBBM_NC_MODE_CNTL				0x00000534
+
+#define REG_A7XX_RBBM_SNAPSHOT_STATUS				0x00000535
+
+#define REG_A7XX_CP_RB_BASE					0x00000800
+
+#define REG_A7XX_CP_RB_CNTL					0x00000802
+
+#define REG_A7XX_CP_RB_RPTR_ADDR				0x00000804
+
+#define REG_A7XX_CP_RB_RPTR					0x00000806
+
+#define REG_A7XX_CP_RB_WPTR					0x00000807
+
+#define REG_A7XX_CP_SQE_CNTL					0x00000808
+
+#define REG_A7XX_CP_CP2GMU_STATUS				0x00000812
+
+#define REG_A7XX_CP_HW_FAULT					0x00000821
+
+#define REG_A7XX_CP_INTERRUPT_STATUS				0x00000823
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERROR			0x00000001
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERROR			0x00000002
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULT			0x00000004
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTION		0x00000010
+#define A7XX_CP_INTERRUPT_STATUS_VSDPARITYERROR			0x00000040
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTION		0x00000080
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERRORLPAC		0x00000100
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERRORLPAC			0x00000200
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULTLPAC			0x00000400
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTIONLPAC		0x00000800
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTIONLPAC		0x00001000
+#define A7XX_CP_INTERRUPT_STATUS_OPCODEERRORBV			0x00002000
+#define A7XX_CP_INTERRUPT_STATUS_UCODEERRORBV			0x00004000
+#define A7XX_CP_INTERRUPT_STATUS_CPHWFAULTBV			0x00008000
+#define A7XX_CP_INTERRUPT_STATUS_REGISTERPROTECTIONBV		0x00010000
+#define A7XX_CP_INTERRUPT_STATUS_ILLEGALINSTRUCTIONBV		0x00020000
+
+#define REG_A7XX_CP_PROTECT_STATUS				0x00000824
+
+#define REG_A7XX_CP_STATUS_1					0x00000825
+
+#define REG_A7XX_CP_SQE_INSTR_BASE				0x00000830
+
+#define REG_A7XX_CP_MISC_CNTL					0x00000840
+
+#define REG_A7XX_CP_CHICKEN_DBG					0x00000841
+
+#define REG_A7XX_CP_DBG_ECO_CNTL				0x00000843
+
+#define REG_A7XX_CP_APRIV_CNTL					0x00000844
+
+#define REG_A7XX_CP_PROTECT_CNTL				0x0000084f
+
+static inline uint32_t REG_A7XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000850 + 0x1*i0; }
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_CNTL				0x000008a0
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_SMMU_INFO			0x000008a1
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR	0x000008a3
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR	0x000008a5
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR	0x000008a7
+
+#define REG_A7XX_CP_CONTEXT_SWITCH_LEVEL_STATUS			0x000008ab
+
+static inline uint32_t REG_A7XX_CP_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008d0 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_CP_BV_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008e0 + 0x1*i0; }
+
+#define REG_A7XX_CP_CRASH_SCRIPT_BASE				0x00000900
+
+#define REG_A7XX_CP_CRASH_DUMP_CNTL				0x00000902
+
+#define REG_A7XX_CP_CRASH_DUMP_STATUS				0x00000903
+
+#define REG_A7XX_CP_SQE_STAT_ADDR				0x00000908
+
+#define REG_A7XX_CP_SQE_STAT_DATA				0x00000909
+
+#define REG_A7XX_CP_DRAW_STATE_ADDR				0x0000090a
+
+#define REG_A7XX_CP_DRAW_STATE_DATA				0x0000090b
+
+#define REG_A7XX_CP_ROQ_DBG_ADDR				0x0000090c
+
+#define REG_A7XX_CP_ROQ_DBG_DATA				0x0000090d
+
+#define REG_A7XX_CP_MEM_POOL_DBG_ADDR				0x0000090e
+
+#define REG_A7XX_CP_MEM_POOL_DBG_DATA				0x0000090f
+
+#define REG_A7XX_CP_SQE_UCODE_DBG_ADDR				0x00000910
+
+#define REG_A7XX_CP_SQE_UCODE_DBG_DATA				0x00000911
+
+#define REG_A7XX_CP_IB1_BASE					0x00000928
+
+#define REG_A7XX_CP_IB1_REM_SIZE				0x0000092a
+
+#define REG_A7XX_CP_IB2_BASE					0x0000092b
+
+#define REG_A7XX_CP_IB2_REM_SIZE				0x0000092d
+
+#define REG_A7XX_CP_ALWAYS_ON_COUNTER				0x00000980
+
+#define REG_A7XX_CP_AHB_CNTL					0x0000098d
+
+#define REG_A7XX_CP_APERTURE_CNTL_HOST				0x00000a00
+
+#define REG_A7XX_CP_APERTURE_CNTL_CD				0x00000a03
+
+#define REG_A7XX_CP_BV_PROTECT_STATUS				0x00000a61
+
+#define REG_A7XX_CP_BV_HW_FAULT					0x00000a64
+
+#define REG_A7XX_CP_BV_DRAW_STATE_ADDR				0x00000a81
+
+#define REG_A7XX_CP_BV_DRAW_STATE_DATA				0x00000a82
+
+#define REG_A7XX_CP_BV_ROQ_DBG_ADDR				0x00000a83
+
+#define REG_A7XX_CP_BV_ROQ_DBG_DATA				0x00000a84
+
+#define REG_A7XX_CP_BV_SQE_UCODE_DBG_ADDR			0x00000a85
+
+#define REG_A7XX_CP_BV_SQE_UCODE_DBG_DATA			0x00000a86
+
+#define REG_A7XX_CP_BV_SQE_STAT_ADDR				0x00000a87
+
+#define REG_A7XX_CP_BV_SQE_STAT_DATA				0x00000a88
+
+#define REG_A7XX_CP_BV_MEM_POOL_DBG_ADDR			0x00000a96
+
+#define REG_A7XX_CP_BV_MEM_POOL_DBG_DATA			0x00000a97
+
+#define REG_A7XX_CP_BV_RB_RPTR_ADDR				0x00000a98
+
+#define REG_A7XX_CP_RESOURCE_TBL_DBG_ADDR			0x00000a9a
+
+#define REG_A7XX_CP_RESOURCE_TBL_DBG_DATA			0x00000a9b
+
+#define REG_A7XX_CP_BV_APRIV_CNTL				0x00000ad0
+
+#define REG_A7XX_CP_BV_CHICKEN_DBG				0x00000ada
+
+#define REG_A7XX_CP_LPAC_DRAW_STATE_ADDR			0x00000b0a
+
+#define REG_A7XX_CP_LPAC_DRAW_STATE_DATA			0x00000b0b
+
+#define REG_A7XX_CP_LPAC_ROQ_DBG_ADDR				0x00000b0c
+
+#define REG_A7XX_CP_SQE_AC_UCODE_DBG_ADDR			0x00000b27
+
+#define REG_A7XX_CP_SQE_AC_UCODE_DBG_DATA			0x00000b28
+
+#define REG_A7XX_CP_SQE_AC_STAT_ADDR				0x00000b29
+
+#define REG_A7XX_CP_SQE_AC_STAT_DATA				0x00000b2a
+
+#define REG_A7XX_CP_LPAC_APRIV_CNTL				0x00000b31
+
+#define REG_A7XX_CP_LPAC_ROQ_DBG_DATA				0x00000b35
+
+#define REG_A7XX_CP_LPAC_FIFO_DBG_DATA				0x00000b36
+
+#define REG_A7XX_CP_LPAC_FIFO_DBG_ADDR				0x00000b40
+
+static inline uint32_t REG_A7XX_VSC_PERFCTR_VSC_SEL(uint32_t i0) { return 0x00000cd8 + 0x1*i0; }
+
+#define REG_A7XX_UCHE_MODE_CNTL					0x00000e01
+
+#define REG_A7XX_UCHE_WRITE_THRU_BASE				0x00000e07
+
+#define REG_A7XX_UCHE_TRAP_BASE					0x00000e09
+
+#define REG_A7XX_UCHE_GMEM_RANGE_MIN				0x00000e0b
+
+#define REG_A7XX_UCHE_GMEM_RANGE_MAX				0x00000e0d
+
+#define REG_A7XX_UCHE_CACHE_WAYS				0x00000e17
+
+#define REG_A7XX_UCHE_CLIENT_PF					0x00000e19
+
+static inline uint32_t REG_A7XX_UCHE_PERFCTR_UCHE_SEL(uint32_t i0) { return 0x00000e1c + 0x1*i0; }
+
+#define REG_A7XX_UCHE_GBIF_GX_CONFIG				0x00000e3a
+
+#define REG_A7XX_UCHE_CMDQ_CONFIG				0x00000e3c
+
+#define REG_A7XX_PDC_GPU_ENABLE_PDC				0x00001140
+
+#define REG_A7XX_PDC_GPU_SEQ_START_ADDR				0x00001148
+
+#define REG_A7XX_VBIF_XIN_HALT_CTRL1				0x00003081
+
+#define REG_A7XX_VBIF_TEST_BUS_OUT_CTRL				0x00003084
+
+#define REG_A7XX_VBIF_TEST_BUS1_CTRL0				0x00003085
+
+#define REG_A7XX_VBIF_TEST_BUS1_CTRL1				0x00003086
+
+#define REG_A7XX_VBIF_TEST_BUS2_CTRL0				0x00003087
+
+#define REG_A7XX_VBIF_TEST_BUS2_CTRL1				0x00003088
+
+#define REG_A7XX_VBIF_TEST_BUS_OUT				0x0000308c
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL0				0x000030d0
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL1				0x000030d1
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL2				0x000030d2
+
+#define REG_A7XX_VBIF_PERF_CNT_SEL3				0x000030d3
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW0				0x000030d8
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW1				0x000030d9
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW2				0x000030da
+
+#define REG_A7XX_VBIF_PERF_CNT_LOW3				0x000030db
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH0				0x000030e0
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH1				0x000030e1
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH2				0x000030e2
+
+#define REG_A7XX_VBIF_PERF_CNT_HIGH3				0x000030e3
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW0				0x00003110
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW1				0x00003111
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_LOW2				0x00003112
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH0			0x00003118
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH1			0x00003119
+
+#define REG_A7XX_VBIF_PERF_PWR_CNT_HIGH2			0x0000311a
+
+#define REG_A7XX_GBIF_SCACHE_CNTL0				0x00003c01
+
+#define REG_A7XX_GBIF_SCACHE_CNTL1				0x00003c02
+
+#define REG_A7XX_GBIF_QSB_SIDE0					0x00003c03
+
+#define REG_A7XX_GBIF_QSB_SIDE1					0x00003c04
+
+#define REG_A7XX_GBIF_QSB_SIDE2					0x00003c05
+
+#define REG_A7XX_GBIF_QSB_SIDE3					0x00003c06
+
+#define REG_A7XX_GBIF_HALT					0x00003c45
+
+#define REG_A7XX_GBIF_HALT_ACK					0x00003c46
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_EN				0x00003cc0
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_CLR				0x00003cc1
+
+#define REG_A7XX_GBIF_PERF_CNT_SEL				0x00003cc2
+
+#define REG_A7XX_GBIF_PERF_PWR_CNT_SEL				0x00003cc3
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW0				0x00003cc4
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW1				0x00003cc5
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW2				0x00003cc6
+
+#define REG_A7XX_GBIF_PERF_CNT_LOW3				0x00003cc7
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH0				0x00003cc8
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH1				0x00003cc9
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH2				0x00003cca
+
+#define REG_A7XX_GBIF_PERF_CNT_HIGH3				0x00003ccb
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW0				0x00003ccc
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW1				0x00003ccd
+
+#define REG_A7XX_GBIF_PWR_CNT_LOW2				0x00003cce
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH0				0x00003ccf
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH1				0x00003cd0
+
+#define REG_A7XX_GBIF_PWR_CNT_HIGH2				0x00003cd1
+
+#define REG_A7XX_GRAS_NC_MODE_CNTL				0x00008602
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_TSE_SEL(uint32_t i0) { return 0x00008610 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_RAS_SEL(uint32_t i0) { return 0x00008614 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_GRAS_PERFCTR_LRZ_SEL(uint32_t i0) { return 0x00008618 + 0x1*i0; }
+
+#define REG_A7XX_RB_NC_MODE_CNTL				0x00008e08
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_RB_SEL(uint32_t i0) { return 0x00008e10 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_CCU_SEL(uint32_t i0) { return 0x00008e18 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_CMP_SEL(uint32_t i0) { return 0x00008e2c + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_RB_PERFCTR_UFC_SEL(uint32_t i0) { return 0x00008e30 + 0x1*i0; }
+
+#define REG_A7XX_RB_RB_SUB_BLOCK_SEL_CNTL_HOST			0x00008e3b
+
+#define REG_A7XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD			0x00008e3d
+
+#define REG_A7XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE		0x00008e50
+
+static inline uint32_t REG_A7XX_VPC_PERFCTR_VPC_SEL(uint32_t i0) { return 0x0000960b + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_PC_PERFCTR_PC_SEL(uint32_t i0) { return 0x00009e42 + 0x1*i0; }
+
+static inline uint32_t REG_A7XX_VFD_PERFCTR_VFD_SEL(uint32_t i0) { return 0x0000a610 + 0x1*i0; }
+
+#define REG_A7XX_SP_NC_MODE_CNTL				0x0000ae02
+
+static inline uint32_t REG_A7XX_SP_PERFCTR_HLSQ_SEL(uint32_t i0) { return 0x0000ae60 + 0x1*i0; }
+
+#define REG_A7XX_SP_READ_SEL					0x0000ae6d
+
+static inline uint32_t REG_A7XX_SP_PERFCTR_SP_SEL(uint32_t i0) { return 0x0000ae80 + 0x1*i0; }
+
+#define REG_A7XX_TPL1_NC_MODE_CNTL				0x0000b604
+
+static inline uint32_t REG_A7XX_TPL1_PERFCTR_TP_SEL(uint32_t i0) { return 0x0000b610 + 0x1*i0; }
+
+#define REG_A7XX_SP_AHB_READ_APERTURE				0x0000c000
+
+#define REG_A7XX_RBBM_SECVID_TRUST_CNTL				0x0000f400
+
+#define REG_A7XX_RBBM_SECVID_TSB_TRUSTED_BASE			0x0000f800
+
+#define REG_A7XX_RBBM_SECVID_TSB_TRUSTED_SIZE			0x0000f802
+
+#define REG_A7XX_RBBM_SECVID_TSB_CNTL				0x0000f803
+
+#define REG_A7XX_RBBM_SECVID_TSB_STATUS				0x0000fc00
+
+
+#endif /* A7XX_XML */
diff --git a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
index 7aecf920f9b90..9eeedd261b733 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
+++ b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h
@@ -8,19 +8,20 @@ This file was generated by the rules-ng-ng headergen tool in this git repository
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno.xml                     (    594 bytes, from 2021-01-30 18:25:22)
-- /home/robclark/tmp/mesa/src/freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-12-31 19:26:32)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-06-21 15:24:24)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_common.xml       (  14609 bytes, from 2021-11-24 23:05:10)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_pm4.xml          (  69086 bytes, from 2022-03-03 16:41:33)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-11-24 23:05:10)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a4xx.xml                ( 113358 bytes, from 2022-01-31 23:06:21)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-01-31 23:06:21)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-03 16:41:33)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-07-22 15:21:56)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2021-01-30 18:25:22)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2021-07-22 15:21:56)
-- /home/robclark/tmp/mesa/src/freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2021-07-22 15:21:56)
+- freedreno/registers/adreno.xml                     (    627 bytes, from 2022-03-27 15:04:47)
+- freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/a2xx.xml                (  90810 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/adreno_common.xml       (  14631 bytes, from 2022-03-27 14:52:08)
+- freedreno/registers/adreno/adreno_pm4.xml          (  70177 bytes, from 2022-03-27 20:02:31)
+- freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2021-08-27 13:03:56)
+- freedreno/registers/adreno/a4xx.xml                ( 113474 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a5xx.xml                ( 149512 bytes, from 2022-03-21 16:05:18)
+- freedreno/registers/adreno/a6xx.xml                ( 184954 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/a6xx_gmu.xml            (  11331 bytes, from 2021-08-06 17:44:41)
+- freedreno/registers/adreno/a7xx.xml                (  20004 bytes, from 2022-03-27 20:01:42)
+- freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2020-11-18 00:17:12)
+- freedreno/registers/adreno/adreno_control_regs.xml (   6038 bytes, from 2022-03-22 19:23:46)
+- freedreno/registers/adreno/adreno_pipe_regs.xml    (   2924 bytes, from 2022-03-22 19:23:46)
 
 Copyright (C) 2013-2022 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
@@ -301,6 +302,8 @@ enum adreno_pm4_type3_packets {
 	CP_REG_WRITE = 109,
 	CP_START_BIN = 80,
 	CP_END_BIN = 81,
+	CP_WAIT_TIMESTAMP = 20,
+	CP_THREAD_CONTROL = 23,
 };
 
 enum adreno_state_block {
@@ -482,6 +485,12 @@ enum reg_tracker {
 	UNK_EVENT_WRITE = 4,
 };
 
+enum cp_thread {
+	CP_SET_THREAD_BR = 1,
+	CP_SET_THREAD_BV = 2,
+	CP_SET_THREAD_BOTH = 3,
+};
+
 #define REG_CP_LOAD_STATE_0					0x00000000
 #define CP_LOAD_STATE_0_DST_OFF__MASK				0x0000ffff
 #define CP_LOAD_STATE_0_DST_OFF__SHIFT				0
@@ -2361,5 +2370,33 @@ static inline uint32_t CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK(uint32_t val)
 
 #define REG_CP_START_BIN_BODY_DWORDS				0x00000004
 
+#define REG_CP_THREAD_CONTROL_0					0x00000000
+#define CP_THREAD_CONTROL_0_THREAD__MASK			0x00000003
+#define CP_THREAD_CONTROL_0_THREAD__SHIFT			0
+static inline uint32_t CP_THREAD_CONTROL_0_THREAD(enum cp_thread val)
+{
+	return ((val) << CP_THREAD_CONTROL_0_THREAD__SHIFT) & CP_THREAD_CONTROL_0_THREAD__MASK;
+}
+#define CP_THREAD_CONTROL_0_CONCURRENT_BIN_DISABLE		0x08000000
+#define CP_THREAD_CONTROL_0_SYNC_THREADS			0x80000000
+
+#define REG_CP_WAIT_TIMESTAMP_0					0x00000000
+#define CP_WAIT_TIMESTAMP_0_REF__MASK				0x00000003
+#define CP_WAIT_TIMESTAMP_0_REF__SHIFT				0
+static inline uint32_t CP_WAIT_TIMESTAMP_0_REF(uint32_t val)
+{
+	return ((val) << CP_WAIT_TIMESTAMP_0_REF__SHIFT) & CP_WAIT_TIMESTAMP_0_REF__MASK;
+}
+#define CP_WAIT_TIMESTAMP_0_MEMSPACE__MASK			0x00000010
+#define CP_WAIT_TIMESTAMP_0_MEMSPACE__SHIFT			4
+static inline uint32_t CP_WAIT_TIMESTAMP_0_MEMSPACE(uint32_t val)
+{
+	return ((val) << CP_WAIT_TIMESTAMP_0_MEMSPACE__SHIFT) & CP_WAIT_TIMESTAMP_0_MEMSPACE__MASK;
+}
+
+#define REG_CP_WAIT_TIMESTAMP_ADDR				0x00000001
+
+#define REG_CP_WAIT_TIMESTAMP_VALUE				0x00000003
+
 
 #endif /* ADRENO_PM4_XML */
-- 
2.26.1


  parent reply	other threads:[~2022-03-27 20:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-27 20:25 [PATCH 0/4] drm/msm/adreno: add support for a730 Jonathan Marek
2022-03-27 20:25 ` Jonathan Marek
2022-03-27 20:25 ` [PATCH 1/4] drm/msm/adreno: move a6xx CP_PROTECT macros to common code Jonathan Marek
2022-03-27 20:25   ` Jonathan Marek
2022-03-27 20:25 ` [PATCH 2/4] drm/msm/adreno: use a single register offset for gpu_read64/gpu_write64 Jonathan Marek
2022-03-27 20:25   ` Jonathan Marek
2022-04-02  1:39   ` Rob Clark
2022-04-02  1:39     ` Rob Clark
2022-03-27 20:25 ` Jonathan Marek [this message]
2022-03-27 20:25   ` [PATCH 3/4] drm/msm/adreno: update headers Jonathan Marek
2022-03-27 20:25 ` [PATCH 4/4] drm/msm/adreno: add support for a730 Jonathan Marek
2022-03-27 20:25   ` Jonathan Marek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220327202643.4053-4-jonathan@marek.ca \
    --to=jonathan@marek.ca \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=sean@poorly.run \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.