# Flakes reported more than once during Jan-Feb 2020
dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array
+# This started failing, despite passing locally (and generating identical
+# cmdstream as before. Not sure what is going on, but adding it to skips
+# for now
+dEQP-GLES31.functional.compute.shared_var.atomic.compswap.lowp_int
+
# Non-sysmem flakes
dEQP-VK.pipeline.spec_constant.compute.composite.matrix.mat3x2
<reg32 offset="0x0043" name="MH_MMU_PAGE_FAULT"/>
<reg32 offset="0x0044" name="MH_MMU_TRAN_ERROR"/>
<reg32 offset="0x0045" name="MH_MMU_INVALIDATE">
- <bitfield name="INVALIDATE_ALL" pos="0"/>
- <bitfield name="INVALIDATE_TC" pos="1"/>
+ <bitfield name="INVALIDATE_ALL" pos="0" type="boolean"/>
+ <bitfield name="INVALIDATE_TC" pos="1" type="boolean"/>
</reg32>
<reg32 offset="0x0046" name="MH_MMU_MPU_BASE"/>
<reg32 offset="0x0047" name="MH_MMU_MPU_END"/>
<reg32 offset="0x0398" name="RBBM_PERFCOUNTER1_HI"/>
<reg32 offset="0x039b" name="RBBM_DEBUG"/>
<reg32 offset="0x039c" name="RBBM_PM_OVERRIDE1">
- <bitfield name="RBBM_AHBCLK_PM_OVERRIDE" pos="0"/>
- <bitfield name="SC_REG_SCLK_PM_OVERRIDE" pos="1"/>
- <bitfield name="SC_SCLK_PM_OVERRIDE" pos="2"/>
- <bitfield name="SP_TOP_SCLK_PM_OVERRIDE" pos="3"/>
- <bitfield name="SP_V0_SCLK_PM_OVERRIDE" pos="4"/>
- <bitfield name="SQ_REG_SCLK_PM_OVERRIDE" pos="5"/>
- <bitfield name="SQ_REG_FIFOS_SCLK_PM_OVERRIDE" pos="6"/>
- <bitfield name="SQ_CONST_MEM_SCLK_PM_OVERRIDE" pos="7"/>
- <bitfield name="SQ_SQ_SCLK_PM_OVERRIDE" pos="8"/>
- <bitfield name="SX_SCLK_PM_OVERRIDE" pos="9"/>
- <bitfield name="SX_REG_SCLK_PM_OVERRIDE" pos="10"/>
- <bitfield name="TCM_TCO_SCLK_PM_OVERRIDE" pos="11"/>
- <bitfield name="TCM_TCM_SCLK_PM_OVERRIDE" pos="12"/>
- <bitfield name="TCM_TCD_SCLK_PM_OVERRIDE" pos="13"/>
- <bitfield name="TCM_REG_SCLK_PM_OVERRIDE" pos="14"/>
- <bitfield name="TPC_TPC_SCLK_PM_OVERRIDE" pos="15"/>
- <bitfield name="TPC_REG_SCLK_PM_OVERRIDE" pos="16"/>
- <bitfield name="TCF_TCA_SCLK_PM_OVERRIDE" pos="17"/>
- <bitfield name="TCF_TCB_SCLK_PM_OVERRIDE" pos="18"/>
- <bitfield name="TCF_TCB_READ_SCLK_PM_OVERRIDE" pos="19"/>
- <bitfield name="TP_TP_SCLK_PM_OVERRIDE" pos="20"/>
- <bitfield name="TP_REG_SCLK_PM_OVERRIDE" pos="21"/>
- <bitfield name="CP_G_SCLK_PM_OVERRIDE" pos="22"/>
- <bitfield name="CP_REG_SCLK_PM_OVERRIDE" pos="23"/>
- <bitfield name="CP_G_REG_SCLK_PM_OVERRIDE" pos="24"/>
- <bitfield name="SPI_SCLK_PM_OVERRIDE" pos="25"/>
- <bitfield name="RB_REG_SCLK_PM_OVERRIDE" pos="26"/>
- <bitfield name="RB_SCLK_PM_OVERRIDE" pos="27"/>
- <bitfield name="MH_MH_SCLK_PM_OVERRIDE" pos="28"/>
- <bitfield name="MH_REG_SCLK_PM_OVERRIDE" pos="29"/>
- <bitfield name="MH_MMU_SCLK_PM_OVERRIDE" pos="30"/>
- <bitfield name="MH_TCROQ_SCLK_PM_OVERRIDE" pos="31"/>
+ <bitfield name="RBBM_AHBCLK_PM_OVERRIDE" pos="0" type="boolean"/>
+ <bitfield name="SC_REG_SCLK_PM_OVERRIDE" pos="1" type="boolean"/>
+ <bitfield name="SC_SCLK_PM_OVERRIDE" pos="2" type="boolean"/>
+ <bitfield name="SP_TOP_SCLK_PM_OVERRIDE" pos="3" type="boolean"/>
+ <bitfield name="SP_V0_SCLK_PM_OVERRIDE" pos="4" type="boolean"/>
+ <bitfield name="SQ_REG_SCLK_PM_OVERRIDE" pos="5" type="boolean"/>
+ <bitfield name="SQ_REG_FIFOS_SCLK_PM_OVERRIDE" pos="6" type="boolean"/>
+ <bitfield name="SQ_CONST_MEM_SCLK_PM_OVERRIDE" pos="7" type="boolean"/>
+ <bitfield name="SQ_SQ_SCLK_PM_OVERRIDE" pos="8" type="boolean"/>
+ <bitfield name="SX_SCLK_PM_OVERRIDE" pos="9" type="boolean"/>
+ <bitfield name="SX_REG_SCLK_PM_OVERRIDE" pos="10" type="boolean"/>
+ <bitfield name="TCM_TCO_SCLK_PM_OVERRIDE" pos="11" type="boolean"/>
+ <bitfield name="TCM_TCM_SCLK_PM_OVERRIDE" pos="12" type="boolean"/>
+ <bitfield name="TCM_TCD_SCLK_PM_OVERRIDE" pos="13" type="boolean"/>
+ <bitfield name="TCM_REG_SCLK_PM_OVERRIDE" pos="14" type="boolean"/>
+ <bitfield name="TPC_TPC_SCLK_PM_OVERRIDE" pos="15" type="boolean"/>
+ <bitfield name="TPC_REG_SCLK_PM_OVERRIDE" pos="16" type="boolean"/>
+ <bitfield name="TCF_TCA_SCLK_PM_OVERRIDE" pos="17" type="boolean"/>
+ <bitfield name="TCF_TCB_SCLK_PM_OVERRIDE" pos="18" type="boolean"/>
+ <bitfield name="TCF_TCB_READ_SCLK_PM_OVERRIDE" pos="19" type="boolean"/>
+ <bitfield name="TP_TP_SCLK_PM_OVERRIDE" pos="20" type="boolean"/>
+ <bitfield name="TP_REG_SCLK_PM_OVERRIDE" pos="21" type="boolean"/>
+ <bitfield name="CP_G_SCLK_PM_OVERRIDE" pos="22" type="boolean"/>
+ <bitfield name="CP_REG_SCLK_PM_OVERRIDE" pos="23" type="boolean"/>
+ <bitfield name="CP_G_REG_SCLK_PM_OVERRIDE" pos="24" type="boolean"/>
+ <bitfield name="SPI_SCLK_PM_OVERRIDE" pos="25" type="boolean"/>
+ <bitfield name="RB_REG_SCLK_PM_OVERRIDE" pos="26" type="boolean"/>
+ <bitfield name="RB_SCLK_PM_OVERRIDE" pos="27" type="boolean"/>
+ <bitfield name="MH_MH_SCLK_PM_OVERRIDE" pos="28" type="boolean"/>
+ <bitfield name="MH_REG_SCLK_PM_OVERRIDE" pos="29" type="boolean"/>
+ <bitfield name="MH_MMU_SCLK_PM_OVERRIDE" pos="30" type="boolean"/>
+ <bitfield name="MH_TCROQ_SCLK_PM_OVERRIDE" pos="31" type="boolean"/>
</reg32>
<reg32 offset="0x039d" name="RBBM_PM_OVERRIDE2"/>
<reg32 offset="0x03a0" name="RBBM_DEBUG_OUT"/>
<reg32 offset="0x005a" name="RBBM_INTERFACE_HANG_MASK_CTL3"/>
<bitset name="A3XX_INT0">
- <bitfield name="RBBM_GPU_IDLE" pos="0"/>
- <bitfield name="RBBM_AHB_ERROR" pos="1"/>
- <bitfield name="RBBM_REG_TIMEOUT" pos="2"/>
- <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3"/>
- <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4"/>
- <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5"/>
- <bitfield name="VFD_ERROR" pos="6"/>
- <bitfield name="CP_SW_INT" pos="7"/>
- <bitfield name="CP_T0_PACKET_IN_IB" pos="8"/>
- <bitfield name="CP_OPCODE_ERROR" pos="9"/>
- <bitfield name="CP_RESERVED_BIT_ERROR" pos="10"/>
- <bitfield name="CP_HW_FAULT" pos="11"/>
- <bitfield name="CP_DMA" pos="12"/>
- <bitfield name="CP_IB2_INT" pos="13"/>
- <bitfield name="CP_IB1_INT" pos="14"/>
- <bitfield name="CP_RB_INT" pos="15"/>
- <bitfield name="CP_REG_PROTECT_FAULT" pos="16"/>
- <bitfield name="CP_RB_DONE_TS" pos="17"/>
- <bitfield name="CP_VS_DONE_TS" pos="18"/>
- <bitfield name="CP_PS_DONE_TS" pos="19"/>
- <bitfield name="CACHE_FLUSH_TS" pos="20"/>
- <bitfield name="CP_AHB_ERROR_HALT" pos="21"/>
- <bitfield name="MISC_HANG_DETECT" pos="24"/>
- <bitfield name="UCHE_OOB_ACCESS" pos="25"/>
+ <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
+ <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/>
+ <bitfield name="RBBM_REG_TIMEOUT" pos="2" type="boolean"/>
+ <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/>
+ <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/>
+ <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5" type="boolean"/>
+ <bitfield name="VFD_ERROR" pos="6" type="boolean"/>
+ <bitfield name="CP_SW_INT" pos="7" type="boolean"/>
+ <bitfield name="CP_T0_PACKET_IN_IB" pos="8" type="boolean"/>
+ <bitfield name="CP_OPCODE_ERROR" pos="9" type="boolean"/>
+ <bitfield name="CP_RESERVED_BIT_ERROR" pos="10" type="boolean"/>
+ <bitfield name="CP_HW_FAULT" pos="11" type="boolean"/>
+ <bitfield name="CP_DMA" pos="12" type="boolean"/>
+ <bitfield name="CP_IB2_INT" pos="13" type="boolean"/>
+ <bitfield name="CP_IB1_INT" pos="14" type="boolean"/>
+ <bitfield name="CP_RB_INT" pos="15" type="boolean"/>
+ <bitfield name="CP_REG_PROTECT_FAULT" pos="16" type="boolean"/>
+ <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
+ <bitfield name="CP_VS_DONE_TS" pos="18" type="boolean"/>
+ <bitfield name="CP_PS_DONE_TS" pos="19" type="boolean"/>
+ <bitfield name="CACHE_FLUSH_TS" pos="20" type="boolean"/>
+ <bitfield name="CP_AHB_ERROR_HALT" pos="21" type="boolean"/>
+ <bitfield name="MISC_HANG_DETECT" pos="24" type="boolean"/>
+ <bitfield name="UCHE_OOB_ACCESS" pos="25" type="boolean"/>
</bitset>
<reg32 offset="0x0" name="REG"/>
</array>
<bitset name="A4XX_INT0">
- <bitfield name="RBBM_GPU_IDLE" pos="0"/>
- <bitfield name="RBBM_AHB_ERROR" pos="1"/>
- <bitfield name="RBBM_REG_TIMEOUT" pos="2"/>
- <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3"/>
- <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4"/>
- <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5"/>
- <bitfield name="VFD_ERROR" pos="6"/>
- <bitfield name="CP_SW_INT" pos="7"/>
- <bitfield name="CP_T0_PACKET_IN_IB" pos="8"/>
- <bitfield name="CP_OPCODE_ERROR" pos="9"/>
- <bitfield name="CP_RESERVED_BIT_ERROR" pos="10"/>
- <bitfield name="CP_HW_FAULT" pos="11"/>
- <bitfield name="CP_DMA" pos="12"/>
- <bitfield name="CP_IB2_INT" pos="13"/>
- <bitfield name="CP_IB1_INT" pos="14"/>
- <bitfield name="CP_RB_INT" pos="15"/>
- <bitfield name="CP_REG_PROTECT_FAULT" pos="16"/>
- <bitfield name="CP_RB_DONE_TS" pos="17"/>
- <bitfield name="CP_VS_DONE_TS" pos="18"/>
- <bitfield name="CP_PS_DONE_TS" pos="19"/>
- <bitfield name="CACHE_FLUSH_TS" pos="20"/>
- <bitfield name="CP_AHB_ERROR_HALT" pos="21"/>
- <bitfield name="MISC_HANG_DETECT" pos="24"/>
- <bitfield name="UCHE_OOB_ACCESS" pos="25"/>
+ <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
+ <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/>
+ <bitfield name="RBBM_REG_TIMEOUT" pos="2" type="boolean"/>
+ <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/>
+ <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/>
+ <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5" type="boolean"/>
+ <bitfield name="VFD_ERROR" pos="6" type="boolean"/>
+ <bitfield name="CP_SW_INT" pos="7" type="boolean"/>
+ <bitfield name="CP_T0_PACKET_IN_IB" pos="8" type="boolean"/>
+ <bitfield name="CP_OPCODE_ERROR" pos="9" type="boolean"/>
+ <bitfield name="CP_RESERVED_BIT_ERROR" pos="10" type="boolean"/>
+ <bitfield name="CP_HW_FAULT" pos="11" type="boolean"/>
+ <bitfield name="CP_DMA" pos="12" type="boolean"/>
+ <bitfield name="CP_IB2_INT" pos="13" type="boolean"/>
+ <bitfield name="CP_IB1_INT" pos="14" type="boolean"/>
+ <bitfield name="CP_RB_INT" pos="15" type="boolean"/>
+ <bitfield name="CP_REG_PROTECT_FAULT" pos="16" type="boolean"/>
+ <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
+ <bitfield name="CP_VS_DONE_TS" pos="18" type="boolean"/>
+ <bitfield name="CP_PS_DONE_TS" pos="19" type="boolean"/>
+ <bitfield name="CACHE_FLUSH_TS" pos="20" type="boolean"/>
+ <bitfield name="CP_AHB_ERROR_HALT" pos="21" type="boolean"/>
+ <bitfield name="MISC_HANG_DETECT" pos="24" type="boolean"/>
+ <bitfield name="UCHE_OOB_ACCESS" pos="25" type="boolean"/>
</bitset>
<reg32 offset="0x0099" name="RBBM_SP_REGFILE_SLEEP_CNTL_0"/>
<bitset name="a4xx_xs_control_reg" inline="yes">
<bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/>
<bitfield name="CONSTOBJECTOFFSET" low="8" high="14" type="uint"/>
- <bitfield name="SSBO_ENABLE" pos="15"/>
- <bitfield name="ENABLED" pos="16"/>
+ <bitfield name="SSBO_ENABLE" pos="15" type="boolean"/>
+ <bitfield name="ENABLED" pos="16" type="boolean"/>
<bitfield name="SHADEROBJOFFSET" low="17" high="23" type="uint"/>
<bitfield name="INSTRLENGTH" low="24" high="31" type="uint"/>
</bitset>
<domain name="A5XX" width="32">
<bitset name="A5XX_INT0">
- <bitfield name="RBBM_GPU_IDLE" pos="0"/>
- <bitfield name="RBBM_AHB_ERROR" pos="1"/>
- <bitfield name="RBBM_TRANSFER_TIMEOUT" pos="2"/>
- <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3"/>
- <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4"/>
- <bitfield name="RBBM_ETS_MS_TIMEOUT" pos="5"/>
- <bitfield name="RBBM_ATB_ASYNC_OVERFLOW" pos="6"/>
- <bitfield name="RBBM_GPC_ERROR" pos="7"/>
- <bitfield name="CP_SW" pos="8"/>
- <bitfield name="CP_HW_ERROR" pos="9"/>
- <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10"/>
- <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11"/>
- <bitfield name="CP_CCU_RESOLVE_TS" pos="12"/>
- <bitfield name="CP_IB2" pos="13"/>
- <bitfield name="CP_IB1" pos="14"/>
- <bitfield name="CP_RB" pos="15"/>
- <bitfield name="CP_UNUSED_1" pos="16"/>
- <bitfield name="CP_RB_DONE_TS" pos="17"/>
- <bitfield name="CP_WT_DONE_TS" pos="18"/>
- <bitfield name="UNKNOWN_1" pos="19"/>
- <bitfield name="CP_CACHE_FLUSH_TS" pos="20"/>
- <bitfield name="UNUSED_2" pos="21"/>
- <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22"/>
- <bitfield name="MISC_HANG_DETECT" pos="23"/>
- <bitfield name="UCHE_OOB_ACCESS" pos="24"/>
- <bitfield name="UCHE_TRAP_INTR" pos="25"/>
- <bitfield name="DEBBUS_INTR_0" pos="26"/>
- <bitfield name="DEBBUS_INTR_1" pos="27"/>
- <bitfield name="GPMU_VOLTAGE_DROOP" pos="28"/>
- <bitfield name="GPMU_FIRMWARE" pos="29"/>
- <bitfield name="ISDB_CPU_IRQ" pos="30"/>
- <bitfield name="ISDB_UNDER_DEBUG" pos="31"/>
+ <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
+ <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/>
+ <bitfield name="RBBM_TRANSFER_TIMEOUT" pos="2" type="boolean"/>
+ <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/>
+ <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/>
+ <bitfield name="RBBM_ETS_MS_TIMEOUT" pos="5" type="boolean"/>
+ <bitfield name="RBBM_ATB_ASYNC_OVERFLOW" pos="6" type="boolean"/>
+ <bitfield name="RBBM_GPC_ERROR" pos="7" type="boolean"/>
+ <bitfield name="CP_SW" pos="8" type="boolean"/>
+ <bitfield name="CP_HW_ERROR" pos="9" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11" type="boolean"/>
+ <bitfield name="CP_CCU_RESOLVE_TS" pos="12" type="boolean"/>
+ <bitfield name="CP_IB2" pos="13" type="boolean"/>
+ <bitfield name="CP_IB1" pos="14" type="boolean"/>
+ <bitfield name="CP_RB" pos="15" type="boolean"/>
+ <bitfield name="CP_UNUSED_1" pos="16" type="boolean"/>
+ <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
+ <bitfield name="CP_WT_DONE_TS" pos="18" type="boolean"/>
+ <bitfield name="UNKNOWN_1" pos="19" type="boolean"/>
+ <bitfield name="CP_CACHE_FLUSH_TS" pos="20" type="boolean"/>
+ <bitfield name="UNUSED_2" pos="21" type="boolean"/>
+ <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22" type="boolean"/>
+ <bitfield name="MISC_HANG_DETECT" pos="23" type="boolean"/>
+ <bitfield name="UCHE_OOB_ACCESS" pos="24" type="boolean"/>
+ <bitfield name="UCHE_TRAP_INTR" pos="25" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_0" pos="26" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_1" pos="27" type="boolean"/>
+ <bitfield name="GPMU_VOLTAGE_DROOP" pos="28" type="boolean"/>
+ <bitfield name="GPMU_FIRMWARE" pos="29" type="boolean"/>
+ <bitfield name="ISDB_CPU_IRQ" pos="30" type="boolean"/>
+ <bitfield name="ISDB_UNDER_DEBUG" pos="31" type="boolean"/>
</bitset>
<!-- CP Interrupt bits -->
<bitset name="A5XX_CP_INT">
- <bitfield name="CP_OPCODE_ERROR" pos="0"/>
- <bitfield name="CP_RESERVED_BIT_ERROR" pos="1"/>
- <bitfield name="CP_HW_FAULT_ERROR" pos="2"/>
- <bitfield name="CP_DMA_ERROR" pos="3"/>
- <bitfield name="CP_REGISTER_PROTECTION_ERROR" pos="4"/>
- <bitfield name="CP_AHB_ERROR" pos="5"/>
+ <bitfield name="CP_OPCODE_ERROR" pos="0" type="boolean"/>
+ <bitfield name="CP_RESERVED_BIT_ERROR" pos="1" type="boolean"/>
+ <bitfield name="CP_HW_FAULT_ERROR" pos="2" type="boolean"/>
+ <bitfield name="CP_DMA_ERROR" pos="3" type="boolean"/>
+ <bitfield name="CP_REGISTER_PROTECTION_ERROR" pos="4" type="boolean"/>
+ <bitfield name="CP_AHB_ERROR" pos="5" type="boolean"/>
</bitset>
<!-- CP registers -->
<reg32 offset="0x083f" name="CP_CONTEXT_SWITCH_SAVE_ADDR_HI"/>
<reg32 offset="0x0840" name="CP_CONTEXT_SWITCH_SMMU_INFO_LO"/>
<reg32 offset="0x0841" name="CP_CONTEXT_SWITCH_SMMU_INFO_HI"/>
- <reg32 offset="0x0860" name="CP_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0860" name="CP_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0b14" name="CP_ME_STAT_DATA"/>
<reg32 offset="0x0b15" name="CP_WFI_PEND_CTR"/>
<reg32 offset="0x0b18" name="CP_INTERRUPT_STATUS"/>
<reg32 offset="0x0bb5" name="CP_PERFCTR_CP_SEL_5" type="a5xx_cp_perfcounter_select"/>
<reg32 offset="0x0bb6" name="CP_PERFCTR_CP_SEL_6" type="a5xx_cp_perfcounter_select"/>
<reg32 offset="0x0bb7" name="CP_PERFCTR_CP_SEL_7" type="a5xx_cp_perfcounter_select"/>
- <reg32 offset="0x0bc1" name="VSC_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0bc1" name="VSC_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0bba" name="CP_POWERCTR_CP_SEL_0"/>
<reg32 offset="0x0bbb" name="CP_POWERCTR_CP_SEL_1"/>
<reg32 offset="0x0bbc" name="CP_POWERCTR_CP_SEL_2"/>
<reg32 offset="0x002f" name="RBBM_INTERFACE_HANG_INT_CNTL"/>
<reg32 offset="0x0037" name="RBBM_INT_CLEAR_CMD"/>
<reg32 offset="0x0038" name="RBBM_INT_0_MASK">
- <bitfield name="RBBM_GPU_IDLE" pos="0"/>
- <bitfield name="RBBM_AHB_ERROR" pos="1"/>
- <bitfield name="RBBM_TRANSFER_TIMEOUT" pos="2"/>
- <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3"/>
- <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4"/>
- <bitfield name="RBBM_ETS_MS_TIMEOUT" pos="5"/>
- <bitfield name="RBBM_ATB_ASYNC_OVERFLOW" pos="6"/>
- <bitfield name="RBBM_GPC_ERROR" pos="7"/>
- <bitfield name="CP_SW" pos="8"/>
- <bitfield name="CP_HW_ERROR" pos="9"/>
- <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10"/>
- <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11"/>
- <bitfield name="CP_CCU_RESOLVE_TS" pos="12"/>
- <bitfield name="CP_IB2" pos="13"/>
- <bitfield name="CP_IB1" pos="14"/>
- <bitfield name="CP_RB" pos="15"/>
- <bitfield name="CP_RB_DONE_TS" pos="17"/>
- <bitfield name="CP_WT_DONE_TS" pos="18"/>
- <bitfield name="CP_CACHE_FLUSH_TS" pos="20"/>
- <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22"/>
- <bitfield name="MISC_HANG_DETECT" pos="23"/>
- <bitfield name="UCHE_OOB_ACCESS" pos="24"/>
- <bitfield name="UCHE_TRAP_INTR" pos="25"/>
- <bitfield name="DEBBUS_INTR_0" pos="26"/>
- <bitfield name="DEBBUS_INTR_1" pos="27"/>
- <bitfield name="GPMU_VOLTAGE_DROOP" pos="28"/>
- <bitfield name="GPMU_FIRMWARE" pos="29"/>
- <bitfield name="ISDB_CPU_IRQ" pos="30"/>
- <bitfield name="ISDB_UNDER_DEBUG" pos="31"/>
+ <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
+ <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/>
+ <bitfield name="RBBM_TRANSFER_TIMEOUT" pos="2" type="boolean"/>
+ <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/>
+ <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/>
+ <bitfield name="RBBM_ETS_MS_TIMEOUT" pos="5" type="boolean"/>
+ <bitfield name="RBBM_ATB_ASYNC_OVERFLOW" pos="6" type="boolean"/>
+ <bitfield name="RBBM_GPC_ERROR" pos="7" type="boolean"/>
+ <bitfield name="CP_SW" pos="8" type="boolean"/>
+ <bitfield name="CP_HW_ERROR" pos="9" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11" type="boolean"/>
+ <bitfield name="CP_CCU_RESOLVE_TS" pos="12" type="boolean"/>
+ <bitfield name="CP_IB2" pos="13" type="boolean"/>
+ <bitfield name="CP_IB1" pos="14" type="boolean"/>
+ <bitfield name="CP_RB" pos="15" type="boolean"/>
+ <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
+ <bitfield name="CP_WT_DONE_TS" pos="18" type="boolean"/>
+ <bitfield name="CP_CACHE_FLUSH_TS" pos="20" type="boolean"/>
+ <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22" type="boolean"/>
+ <bitfield name="MISC_HANG_DETECT" pos="23" type="boolean"/>
+ <bitfield name="UCHE_OOB_ACCESS" pos="24" type="boolean"/>
+ <bitfield name="UCHE_TRAP_INTR" pos="25" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_0" pos="26" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_1" pos="27" type="boolean"/>
+ <bitfield name="GPMU_VOLTAGE_DROOP" pos="28" type="boolean"/>
+ <bitfield name="GPMU_FIRMWARE" pos="29" type="boolean"/>
+ <bitfield name="ISDB_CPU_IRQ" pos="30" type="boolean"/>
+ <bitfield name="ISDB_UNDER_DEBUG" pos="31" type="boolean"/>
</reg32>
<reg32 offset="0x003f" name="RBBM_AHB_DBG_CNTL"/>
<reg32 offset="0x0041" name="RBBM_EXT_VBIF_DBG_CNTL"/>
<reg32 offset="0xf805" name="RBBM_SECVID_TSB_COMP_STATUS_HI"/>
<reg32 offset="0xf806" name="RBBM_SECVID_TSB_UCHE_STATUS_LO"/>
<reg32 offset="0xf807" name="RBBM_SECVID_TSB_UCHE_STATUS_HI"/>
- <reg32 offset="0xf810" name="RBBM_SECVID_TSB_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xf810" name="RBBM_SECVID_TSB_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<!-- VSC registers -->
<reg32 offset="0x0bc2" name="VSC_BIN_SIZE">
<reg32 offset="0x0cdd" name="VSC_RESOLVE_CNTL" type="adreno_reg_xy"/>
<!-- GRAS registers -->
- <reg32 offset="0x0c81" name="GRAS_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0c81" name="GRAS_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0c90" name="GRAS_PERFCTR_TSE_SEL_0" type="a5xx_tse_perfcounter_select"/>
<reg32 offset="0x0c91" name="GRAS_PERFCTR_TSE_SEL_1" type="a5xx_tse_perfcounter_select"/>
<reg32 offset="0x0c92" name="GRAS_PERFCTR_TSE_SEL_2" type="a5xx_tse_perfcounter_select"/>
<reg32 offset="0x0c9b" name="GRAS_PERFCTR_LRZ_SEL_3" type="a5xx_lrz_perfcounter_select"/>
<reg32 offset="0x0cc4" name="RB_DBG_ECO_CNTL"/> <!-- always 00100000? -->
- <reg32 offset="0x0cc5" name="RB_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0cc5" name="RB_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0cc6" name="RB_MODE_CNTL"/> <!-- always 00000044? -->
<reg32 offset="0x0cc7" name="RB_CCU_CNTL"/> <!-- always b0056080 or 10000000? -->
<reg32 offset="0x0cd0" name="RB_PERFCTR_RB_SEL_0" type="a5xx_rb_perfcounter_select"/>
<reg32 offset="0x0d00" name="PC_DBG_ECO_CNTL">
<bitfield name="TWOPASSUSEWFI" pos="8" type="boolean"/>
</reg32>
- <reg32 offset="0x0d01" name="PC_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0d01" name="PC_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0d02" name="PC_MODE_CNTL"/> <!-- always 0000001f? -->
<reg32 offset="0x0d04" name="PC_INDEX_BUF_LO"/>
<reg32 offset="0x0d05" name="PC_INDEX_BUF_HI"/>
<reg32 offset="0x0e00" name="HLSQ_TIMEOUT_THRESHOLD_0"/>
<reg32 offset="0x0e01" name="HLSQ_TIMEOUT_THRESHOLD_1"/>
<reg32 offset="0x0e04" name="HLSQ_DBG_ECO_CNTL"/>
- <reg32 offset="0x0e05" name="HLSQ_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0e05" name="HLSQ_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0e06" name="HLSQ_MODE_CNTL"/> <!-- always 00000001? -->
<reg32 offset="0x0e10" name="HLSQ_PERFCTR_HLSQ_SEL_0" type="a5xx_hlsq_perfcounter_select"/>
<reg32 offset="0x0e11" name="HLSQ_PERFCTR_HLSQ_SEL_1" type="a5xx_hlsq_perfcounter_select"/>
<reg32 offset="0xbc00" name="HLSQ_DBG_READ_SEL"/>
<reg32 offset="0xa000" name="HLSQ_DBG_AHB_READ_APERTURE"/>
- <reg32 offset="0x0e41" name="VFD_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0e41" name="VFD_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0e42" name="VFD_MODE_CNTL"/> <!-- always 00000000? -->
<reg32 offset="0x0e50" name="VFD_PERFCTR_VFD_SEL_0" type="a5xx_vfd_perfcounter_select"/>
<reg32 offset="0x0e51" name="VFD_PERFCTR_VFD_SEL_1" type="a5xx_vfd_perfcounter_select"/>
<reg32 offset="0x0e56" name="VFD_PERFCTR_VFD_SEL_6" type="a5xx_vfd_perfcounter_select"/>
<reg32 offset="0x0e57" name="VFD_PERFCTR_VFD_SEL_7" type="a5xx_vfd_perfcounter_select"/>
<reg32 offset="0x0e60" name="VPC_DBG_ECO_CNTL"/> <!-- always 00000400? -->
- <reg32 offset="0x0e61" name="VPC_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0e61" name="VPC_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0e62" name="VPC_MODE_CNTL">
<bitfield name="BINNING_PASS" pos="0" type="boolean"/>
</reg32>
<reg32 offset="0x0e66" name="VPC_PERFCTR_VPC_SEL_2" type="a5xx_vpc_perfcounter_select"/>
<reg32 offset="0x0e67" name="VPC_PERFCTR_VPC_SEL_3" type="a5xx_vpc_perfcounter_select"/>
- <reg32 offset="0x0e80" name="UCHE_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0e80" name="UCHE_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0e82" name="UCHE_SVM_CNTL"/>
<reg32 offset="0x0e87" name="UCHE_WRITE_THRU_BASE_LO"/>
<reg32 offset="0x0e88" name="UCHE_WRITE_THRU_BASE_HI"/>
<reg32 offset="0x0eb2" name="UCHE_TRAP_LOG_HI"/>
<reg32 offset="0x0ec0" name="SP_DBG_ECO_CNTL"/>
- <reg32 offset="0x0ec1" name="SP_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0ec1" name="SP_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0ec2" name="SP_MODE_CNTL"/> <!-- always 0000001e? -->
<reg32 offset="0x0ed0" name="SP_PERFCTR_SP_SEL_0" type="a5xx_sp_perfcounter_select"/>
<reg32 offset="0x0ed1" name="SP_PERFCTR_SP_SEL_1" type="a5xx_sp_perfcounter_select"/>
<reg32 offset="0x0ede" name="SP_POWERCTR_SP_SEL_2"/>
<reg32 offset="0x0edf" name="SP_POWERCTR_SP_SEL_3"/>
- <reg32 offset="0x0f01" name="TPL1_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0f01" name="TPL1_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0f02" name="TPL1_MODE_CNTL"/> <!-- always 00000544? -->
<reg32 offset="0x0f10" name="TPL1_PERFCTR_TP_SEL_0" type="a5xx_tp_perfcounter_select"/>
<reg32 offset="0x0f11" name="TPL1_PERFCTR_TP_SEL_1" type="a5xx_tp_perfcounter_select"/>
<bitset name="a6x_cp_protect" inline="yes">
<bitfield name="BASE_ADDR" low="0" high="17"/>
<bitfield name="MASK_LEN" low="18" high="30"/>
- <bitfield name="READ" pos="31"/>
+ <bitfield name="READ" pos="31" type="boolean"/>
</bitset>
<enum name="a6xx_shader_id">
<domain name="A6XX" width="32">
<bitset name="A6XX_RBBM_INT_0_MASK" inline="no">
- <bitfield name="RBBM_GPU_IDLE" pos="0"/>
- <bitfield name="CP_AHB_ERROR" pos="1"/>
- <bitfield name="RBBM_ATB_ASYNCFIFO_OVERFLOW" pos="6"/>
- <bitfield name="RBBM_GPC_ERROR" pos="7"/>
- <bitfield name="CP_SW" pos="8"/>
- <bitfield name="CP_HW_ERROR" pos="9"/>
- <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10"/>
- <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11"/>
- <bitfield name="CP_CCU_RESOLVE_TS" pos="12"/>
- <bitfield name="CP_IB2" pos="13"/>
- <bitfield name="CP_IB1" pos="14"/>
- <bitfield name="CP_RB" pos="15"/>
- <bitfield name="CP_RB_DONE_TS" pos="17"/>
- <bitfield name="CP_WT_DONE_TS" pos="18"/>
- <bitfield name="CP_CACHE_FLUSH_TS" pos="20"/>
- <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22"/>
- <bitfield name="RBBM_HANG_DETECT" pos="23"/>
- <bitfield name="UCHE_OOB_ACCESS" pos="24"/>
- <bitfield name="UCHE_TRAP_INTR" pos="25"/>
- <bitfield name="DEBBUS_INTR_0" pos="26"/>
- <bitfield name="DEBBUS_INTR_1" pos="27"/>
- <bitfield name="ISDB_CPU_IRQ" pos="30"/>
- <bitfield name="ISDB_UNDER_DEBUG" pos="31"/>
+ <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
+ <bitfield name="CP_AHB_ERROR" pos="1" type="boolean"/>
+ <bitfield name="RBBM_ATB_ASYNCFIFO_OVERFLOW" pos="6" type="boolean"/>
+ <bitfield name="RBBM_GPC_ERROR" pos="7" type="boolean"/>
+ <bitfield name="CP_SW" pos="8" type="boolean"/>
+ <bitfield name="CP_HW_ERROR" pos="9" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_DEPTH_TS" pos="10" type="boolean"/>
+ <bitfield name="CP_CCU_FLUSH_COLOR_TS" pos="11" type="boolean"/>
+ <bitfield name="CP_CCU_RESOLVE_TS" pos="12" type="boolean"/>
+ <bitfield name="CP_IB2" pos="13" type="boolean"/>
+ <bitfield name="CP_IB1" pos="14" type="boolean"/>
+ <bitfield name="CP_RB" pos="15" type="boolean"/>
+ <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
+ <bitfield name="CP_WT_DONE_TS" pos="18" type="boolean"/>
+ <bitfield name="CP_CACHE_FLUSH_TS" pos="20" type="boolean"/>
+ <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="22" type="boolean"/>
+ <bitfield name="RBBM_HANG_DETECT" pos="23" type="boolean"/>
+ <bitfield name="UCHE_OOB_ACCESS" pos="24" type="boolean"/>
+ <bitfield name="UCHE_TRAP_INTR" pos="25" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_0" pos="26" type="boolean"/>
+ <bitfield name="DEBBUS_INTR_1" pos="27" type="boolean"/>
+ <bitfield name="ISDB_CPU_IRQ" pos="30" type="boolean"/>
+ <bitfield name="ISDB_UNDER_DEBUG" pos="31" type="boolean"/>
</bitset>
<bitset name="A6XX_CP_INT">
- <bitfield name="CP_OPCODE_ERROR" pos="0"/>
- <bitfield name="CP_UCODE_ERROR" pos="1"/>
- <bitfield name="CP_HW_FAULT_ERROR" pos="2"/>
- <bitfield name="CP_REGISTER_PROTECTION_ERROR" pos="4"/>
- <bitfield name="CP_AHB_ERROR" pos="5"/>
- <bitfield name="CP_VSD_PARITY_ERROR" pos="6"/>
- <bitfield name="CP_ILLEGAL_INSTR_ERROR" pos="7"/>
+ <bitfield name="CP_OPCODE_ERROR" pos="0" type="boolean"/>
+ <bitfield name="CP_UCODE_ERROR" pos="1" type="boolean"/>
+ <bitfield name="CP_HW_FAULT_ERROR" pos="2" type="boolean"/>
+ <bitfield name="CP_REGISTER_PROTECTION_ERROR" pos="4" type="boolean"/>
+ <bitfield name="CP_AHB_ERROR" pos="5" type="boolean"/>
+ <bitfield name="CP_VSD_PARITY_ERROR" pos="6" type="boolean"/>
+ <bitfield name="CP_ILLEGAL_INSTR_ERROR" pos="7" type="boolean"/>
</bitset>
<reg32 offset="0x0800" name="CP_RB_BASE"/>
</reg32>
<reg32 offset="0x08C3" name="CP_MEM_POOL_SIZE"/>
<reg32 offset="0x0841" name="CP_CHICKEN_DBG"/>
- <reg32 offset="0x0842" name="CP_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0842" name="CP_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0843" name="CP_DBG_ECO_CNTL"/>
<reg32 offset="0x084F" name="CP_PROTECT_CNTL"/>
<reg32 offset="0x098D" name="CP_AHB_CNTL"/>
<reg32 offset="0x0A00" name="CP_APERTURE_CNTL_HOST"/>
<reg32 offset="0x0A03" name="CP_APERTURE_CNTL_CD"/>
- <reg32 offset="0x0C01" name="VSC_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0C01" name="VSC_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0201" name="RBBM_INT_0_STATUS" type="A6XX_RBBM_INT_0_MASK"/>
<reg32 offset="0x0210" name="RBBM_STATUS">
- <bitfield high="23" low="23" name="GPU_BUSY_IGN_AHB" />
- <bitfield high="22" low="22" name="GPU_BUSY_IGN_AHB_CP" />
- <bitfield high="21" low="21" name="HLSQ_BUSY" />
- <bitfield high="20" low="20" name="VSC_BUSY" />
- <bitfield high="19" low="19" name="TPL1_BUSY" />
- <bitfield high="18" low="18" name="SP_BUSY" />
- <bitfield high="17" low="17" name="UCHE_BUSY" />
- <bitfield high="16" low="16" name="VPC_BUSY" />
- <bitfield high="15" low="15" name="VFD_BUSY" />
- <bitfield high="14" low="14" name="TESS_BUSY" />
- <bitfield high="13" low="13" name="PC_VSD_BUSY" />
- <bitfield high="12" low="12" name="PC_DCALL_BUSY" />
- <bitfield high="11" low="11" name="COM_DCOM_BUSY" />
- <bitfield high="10" low="10" name="LRZ_BUSY" />
- <bitfield high="9" low="9" name="A2D_BUSY" />
- <bitfield high="8" low="8" name="CCU_BUSY" />
- <bitfield high="7" low="7" name="RB_BUSY" />
- <bitfield high="6" low="6" name="RAS_BUSY" />
- <bitfield high="5" low="5" name="TSE_BUSY" />
- <bitfield high="4" low="4" name="VBIF_BUSY" />
- <bitfield high="3" low="3" name="GFX_DBGC_BUSY" />
- <bitfield high="2" low="2" name="CP_BUSY" />
- <bitfield high="1" low="1" name="CP_AHB_BUSY_CP_MASTER" />
- <bitfield high="0" low="0" name="CP_AHB_BUSY_CX_MASTER"/>
+ <bitfield pos="23" name="GPU_BUSY_IGN_AHB" type="boolean"/>
+ <bitfield pos="22" name="GPU_BUSY_IGN_AHB_CP" type="boolean"/>
+ <bitfield pos="21" name="HLSQ_BUSY" type="boolean"/>
+ <bitfield pos="20" name="VSC_BUSY" type="boolean"/>
+ <bitfield pos="19" name="TPL1_BUSY" type="boolean"/>
+ <bitfield pos="18" name="SP_BUSY" type="boolean"/>
+ <bitfield pos="17" name="UCHE_BUSY" type="boolean"/>
+ <bitfield pos="16" name="VPC_BUSY" type="boolean"/>
+ <bitfield pos="15" name="VFD_BUSY" type="boolean"/>
+ <bitfield pos="14" name="TESS_BUSY" type="boolean"/>
+ <bitfield pos="13" name="PC_VSD_BUSY" type="boolean"/>
+ <bitfield pos="12" name="PC_DCALL_BUSY" type="boolean"/>
+ <bitfield pos="11" name="COM_DCOM_BUSY" type="boolean"/>
+ <bitfield pos="10" name="LRZ_BUSY" type="boolean"/>
+ <bitfield pos="9" name="A2D_BUSY" type="boolean"/>
+ <bitfield pos="8" name="CCU_BUSY" type="boolean"/>
+ <bitfield pos="7" name="RB_BUSY" type="boolean"/>
+ <bitfield pos="6" name="RAS_BUSY" type="boolean"/>
+ <bitfield pos="5" name="TSE_BUSY" type="boolean"/>
+ <bitfield pos="4" name="VBIF_BUSY" type="boolean"/>
+ <bitfield pos="3" name="GFX_DBGC_BUSY" type="boolean"/>
+ <bitfield pos="2" name="CP_BUSY" type="boolean"/>
+ <bitfield pos="1" name="CP_AHB_BUSY_CP_MASTER" type="boolean"/>
+ <bitfield pos="0" name="CP_AHB_BUSY_CX_MASTER" type="boolean"/>
</reg32>
<reg32 offset="0x0213" name="RBBM_STATUS3">
<bitfield pos="24" name="SMMU_STALLED_ON_FAULT" type="boolean"/>
<reg32 offset="0xF801" name="RBBM_SECVID_TSB_TRUSTED_BASE_HI"/>
<reg32 offset="0xF802" name="RBBM_SECVID_TSB_TRUSTED_SIZE"/>
<reg32 offset="0xF803" name="RBBM_SECVID_TSB_CNTL"/>
- <reg32 offset="0xF810" name="RBBM_SECVID_TSB_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xF810" name="RBBM_SECVID_TSB_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x00010" name="RBBM_VBIF_CLIENT_QOS_CNTL"/>
<reg32 offset="0x00011" name="RBBM_GBIF_CLIENT_QOS_CNTL"/>
<reg32 offset="0x0001c" name="RBBM_WAIT_FOR_GPU_IDLE_CMD">
<reg32 offset="0x0011a" name="RBBM_CLOCK_HYST_GMU_GX"/>
<reg32 offset="0x0011b" name="RBBM_CLOCK_MODE_HLSQ"/>
<reg32 offset="0x0011c" name="RBBM_CLOCK_DELAY_HLSQ"/>
+ <reg32 offset="0x0011d" name="RBBM_CLOCK_HYST_HLSQ"/>
+ <reg32 offset="0x00120" name="RBBM_CLOCK_CNTL_TEX_FCHE"/>
+ <reg32 offset="0x00121" name="RBBM_CLOCK_DELAY_TEX_FCHE"/>
+ <reg32 offset="0x00122" name="RBBM_CLOCK_HYST_TEX_FCHE"/>
+
<reg32 offset="0x0600" name="DBGC_CFG_DBGBUS_SEL_A"/>
<reg32 offset="0x0601" name="DBGC_CFG_DBGBUS_SEL_B"/>
<reg32 offset="0x0602" name="DBGC_CFG_DBGBUS_SEL_C"/>
<reg32 offset="0x0630" name="DBGC_CFG_DBGBUS_TRACE_BUF2"/>
<reg32 offset="0x0CD8" name="VSC_PERFCTR_VSC_SEL_0"/>
<reg32 offset="0x0CD9" name="VSC_PERFCTR_VSC_SEL_1"/>
- <reg32 offset="0xBE05" name="HLSQ_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xBE05" name="HLSQ_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0xBE10" name="HLSQ_PERFCTR_HLSQ_SEL_0"/>
<reg32 offset="0xBE11" name="HLSQ_PERFCTR_HLSQ_SEL_1"/>
<reg32 offset="0xBE12" name="HLSQ_PERFCTR_HLSQ_SEL_2"/>
<reg32 offset="0xBE15" name="HLSQ_PERFCTR_HLSQ_SEL_5"/>
<reg32 offset="0xC800" name="HLSQ_DBG_AHB_READ_APERTURE"/>
<reg32 offset="0xD000" name="HLSQ_DBG_READ_SEL"/>
- <reg32 offset="0xA601" name="VFD_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xA601" name="VFD_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0xA610" name="VFD_PERFCTR_VFD_SEL_0"/>
<reg32 offset="0xA611" name="VFD_PERFCTR_VFD_SEL_1"/>
<reg32 offset="0xA612" name="VFD_PERFCTR_VFD_SEL_2"/>
<reg32 offset="0xA615" name="VFD_PERFCTR_VFD_SEL_5"/>
<reg32 offset="0xA616" name="VFD_PERFCTR_VFD_SEL_6"/>
<reg32 offset="0xA617" name="VFD_PERFCTR_VFD_SEL_7"/>
- <reg32 offset="0x0E00" name="UCHE_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x0E00" name="UCHE_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x0E01" name="UCHE_MODE_CNTL"/>
<reg32 offset="0x0E05" name="UCHE_WRITE_RANGE_MAX_LO"/>
<reg32 offset="0x0E06" name="UCHE_WRITE_RANGE_MAX_HI"/>
<reg32 offset="0x0E25" name="UCHE_PERFCTR_UCHE_SEL_9"/>
<reg32 offset="0x0E26" name="UCHE_PERFCTR_UCHE_SEL_10"/>
<reg32 offset="0x0E27" name="UCHE_PERFCTR_UCHE_SEL_11"/>
- <reg32 offset="0xAE01" name="SP_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xAE01" name="SP_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0xAE02" name="SP_NC_MODE_CNTL"/>
<reg32 offset="0xAE10" name="SP_PERFCTR_SP_SEL_0"/>
<reg32 offset="0xAE11" name="SP_PERFCTR_SP_SEL_1"/>
<reg32 offset="0xAE25" name="SP_PERFCTR_SP_SEL_21"/>
<reg32 offset="0xAE26" name="SP_PERFCTR_SP_SEL_22"/>
<reg32 offset="0xAE27" name="SP_PERFCTR_SP_SEL_23"/>
- <reg32 offset="0xB601" name="TPL1_ADDR_MODE_CNTL"/>
+ <reg32 offset="0xB601" name="TPL1_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0xB604" name="TPL1_NC_MODE_CNTL"/>
<reg32 offset="0xB608" name="TPL1_BICUBIC_WEIGHTS_TABLE_0"/>
<reg32 offset="0xB609" name="TPL1_BICUBIC_WEIGHTS_TABLE_1"/>
<reg32 offset="0xB61B" name="TPL1_PERFCTR_TP_SEL_11"/>
<reg32 offset="0x3000" name="VBIF_VERSION"/>
<reg32 offset="0x3001" name="VBIF_CLKON">
- <bitfield pos="1" name="FORCE_ON_TESTBUS"/>
+ <bitfield pos="1" name="FORCE_ON_TESTBUS" type="boolean"/>
</reg32>
<reg32 offset="0x302A" name="VBIF_GATE_OFF_WRREQ_EN"/>
<reg32 offset="0x3080" name="VBIF_XIN_HALT_CTRL0"/>
<!-- always 0x880 ? (and 0 in a640/a650 traces?) -->
<reg32 offset="0x8600" name="GRAS_UNKNOWN_8600" low="0" high="12" />
- <reg32 offset="0x8601" name="GRAS_ADDR_MODE_CNTL" pos="0" type="boolean"/>
+ <reg32 offset="0x8601" name="GRAS_ADDR_MODE_CNTL" pos="0" type="a5xx_address_mode"/>
<reg32 offset="0x8610" name="GRAS_PERFCTR_TSE_SEL_0"/>
<reg32 offset="0x8611" name="GRAS_PERFCTR_TSE_SEL_1"/>
<reg32 offset="0x8612" name="GRAS_PERFCTR_TSE_SEL_2"/>
<reg32 offset="0x8e01" name="RB_UNKNOWN_8E01"/>
<!-- 0x8e00-0x8e03 invalid -->
<reg32 offset="0x8e04" name="RB_UNKNOWN_8E04"/> <!-- TODO: valid mask 0xfffffeff -->
- <reg32 offset="0x8e05" name="RB_ADDR_MODE_CNTL" pos="0" type="boolean"/>
+ <reg32 offset="0x8e05" name="RB_ADDR_MODE_CNTL" pos="0" type="a5xx_address_mode"/>
<!-- 0x8e06 invalid -->
<reg32 offset="0x8e07" name="RB_CCU_CNTL">
<!-- offset into GMEM for something.
<!-- TODO: 0x9600-0x97ff range -->
<reg32 offset="0x9600" name="VPC_UNKNOWN_9600"/> <!-- always 0x0 ? TODO: 0x1fbf37ff valid mask -->
- <reg32 offset="0x9601" name="VPC_ADDR_MODE_CNTL" pos="0" type="boolean"/>
+ <reg32 offset="0x9601" name="VPC_ADDR_MODE_CNTL" pos="0" type="a5xx_address_mode"/>
<reg32 offset="0x9602" name="VPC_UNKNOWN_9602" pos="0"/> <!-- always 0x0 ? -->
<reg32 offset="0x9603" name="VPC_UNKNOWN_9603" low="0" high="26"/>
<reg32 offset="0x9604" name="VPC_PERFCTR_VPC_SEL_0"/>
<!-- 0x9c01-0x9dff invalid -->
<!-- TODO: 0x9e00-0xa000 range incomplete -->
<reg32 offset="0x9e00" name="PC_DBG_ECO_CNTL"/>
- <reg32 offset="0x9e01" name="PC_ADDR_MODE_CNTL"/>
+ <reg32 offset="0x9e01" name="PC_ADDR_MODE_CNTL" type="a5xx_address_mode"/>
<reg32 offset="0x9e08" name="PC_TESSFACTOR_ADDR_LO"/>
<reg32 offset="0x9e09" name="PC_TESSFACTOR_ADDR_HI"/>
<reg32 offset="0x9e08" name="PC_TESSFACTOR_ADDR" type="waddress" align="32"/>
<bitfield name="VSC_SIZE" low="16" high="21" type="uint"/>
<bitfield name="VSC_N" low="22" high="26" type="uint"/>
</reg32>
- <reg32 offset="0x9e12" name="PC_BIN_DATA_ADDR2" type="waddress" align="32"/>
- <reg32 offset="0x9e14" name="PC_BIN_DATA_ADDR" type="waddress" align="32"/>
+ <reg64 offset="0x9e12" name="PC_BIN_PRIM_STRM" type="waddress" align="32"/>
+ <reg64 offset="0x9e14" name="PC_BIN_DRAW_STRM" type="waddress" align="32"/>
<reg32 offset="0x9e34" name="PC_PERFCTR_PC_SEL_0"/>
<reg32 offset="0x9e35" name="PC_PERFCTR_PC_SEL_1"/>
<value name="EVEN_SPACING" value="3"/>
</enum>
+<doc>Address mode for a5xx+</doc>
+<enum name="a5xx_address_mode">
+ <value name="ADDR_32B" value="0"/>
+ <value name="ADDR_64B" value="1"/>
+</enum>
+
</database>
<value name="CACHE_FLUSH_TS" value="4"/>
<value name="CONTEXT_DONE" value="5"/>
<value name="CACHE_FLUSH" value="6"/>
- <value name="VIZQUERY_START" value="7" variants="A2XX"/>
- <value name="HLSQ_FLUSH" value="7" variants="A3XX,A4XX"/>
- <value name="VIZQUERY_END" value="8" variants="A2XX"/>
+ <value name="VIZQUERY_START" value="7" varset="chip" variants="A2XX"/>
+ <value name="HLSQ_FLUSH" value="7" varset="chip" variants="A3XX-A4XX"/>
+ <value name="VIZQUERY_END" value="8" varset="chip" variants="A2XX"/>
<value name="SC_WAIT_WC" value="9"/>
- <value name="WRITE_PRIMITIVE_COUNTS" value="9" variants="A6XX"/>
- <value name="START_PRIMITIVE_CTRS" value="11" variants="A6XX"/>
- <value name="STOP_PRIMITIVE_CTRS" value="12" variants="A6XX"/>
+ <value name="WRITE_PRIMITIVE_COUNTS" value="9" varset="chip" variants="A6XX"/>
+ <value name="START_PRIMITIVE_CTRS" value="11" varset="chip" variants="A6XX"/>
+ <value name="STOP_PRIMITIVE_CTRS" value="12" varset="chip" variants="A6XX"/>
<value name="RST_PIX_CNT" value="13"/>
<value name="RST_VTX_CNT" value="14"/>
<value name="TILE_FLUSH" value="15"/>
<value name="STAT_EVENT" value="16"/>
- <value name="CACHE_FLUSH_AND_INV_TS_EVENT" value="20" variants="A2XX,A3XX,A4XX"/>
+ <value name="CACHE_FLUSH_AND_INV_TS_EVENT" value="20" varset="chip" variants="A2XX-A4XX"/>
<value name="ZPASS_DONE" value="21"/>
- <value name="CACHE_FLUSH_AND_INV_EVENT" value="22" variants="A2XX"/>
- <value name="RB_DONE_TS" value="22" variants="A3XX-"/>
- <value name="PERFCOUNTER_START" value="23" variants="A2XX,A3XX,A4XX"/>
- <value name="PERFCOUNTER_STOP" value="24" variants="A2XX,A3XX,A4XX"/>
+ <value name="CACHE_FLUSH_AND_INV_EVENT" value="22" varset="chip" variants="A2XX"/>
+ <value name="RB_DONE_TS" value="22" varset="chip" variants="A3XX-"/>
+ <value name="PERFCOUNTER_START" value="23" varset="chip" variants="A2XX-A4XX"/>
+ <value name="PERFCOUNTER_STOP" value="24" varset="chip" variants="A2XX-A4XX"/>
<value name="VS_FETCH_DONE" value="27"/>
- <value name="FACENESS_FLUSH" value="28" variants="A2XX,A3XX,A4XX"/>
+ <value name="FACENESS_FLUSH" value="28" varset="chip" variants="A2XX-A4XX"/>
<!-- a5xx events -->
- <value name="WT_DONE_TS" value="8" variants="A5XX,A6XX"/>
- <value name="FLUSH_SO_0" value="17" variants="A5XX,A6XX"/>
- <value name="FLUSH_SO_1" value="18" variants="A5XX,A6XX"/>
- <value name="FLUSH_SO_2" value="19" variants="A5XX,A6XX"/>
- <value name="FLUSH_SO_3" value="20" variants="A5XX,A6XX"/>
- <value name="PC_CCU_INVALIDATE_DEPTH" value="24" variants="A5XX,A6XX"/>
- <value name="PC_CCU_INVALIDATE_COLOR" value="25" variants="A5XX,A6XX"/>
- <value name="PC_CCU_RESOLVE_TS" value="26" variants="A6XX"/>
- <value name="PC_CCU_FLUSH_DEPTH_TS" value="28" variants="A5XX,A6XX"/>
- <value name="PC_CCU_FLUSH_COLOR_TS" value="29" variants="A5XX,A6XX"/>
- <value name="BLIT" value="30" variants="A5XX,A6XX"/>
- <value name="UNK_25" value="37" variants="A5XX"/>
- <value name="LRZ_FLUSH" value="38" variants="A5XX,A6XX"/>
- <value name="BLIT_OP_FILL_2D" value="39" variants="A5XX,A6XX"/>
- <value name="BLIT_OP_COPY_2D" value="40" variants="A5XX,A6XX"/>
- <value name="BLIT_OP_SCALE_2D" value="42" variants="A5XX,A6XX"/>
- <value name="CONTEXT_DONE_2D" value="43" variants="A5XX,A6XX"/>
- <value name="UNK_2C" value="44" variants="A5XX"/>
- <value name="UNK_2D" value="45" variants="A5XX"/>
+ <value name="WT_DONE_TS" value="8" varset="chip" variants="A5XX-"/>
+ <value name="FLUSH_SO_0" value="17" varset="chip" variants="A5XX-"/>
+ <value name="FLUSH_SO_1" value="18" varset="chip" variants="A5XX-"/>
+ <value name="FLUSH_SO_2" value="19" varset="chip" variants="A5XX-"/>
+ <value name="FLUSH_SO_3" value="20" varset="chip" variants="A5XX-"/>
+ <value name="PC_CCU_INVALIDATE_DEPTH" value="24" varset="chip" variants="A5XX-"/>
+ <value name="PC_CCU_INVALIDATE_COLOR" value="25" varset="chip" variants="A5XX-"/>
+ <value name="PC_CCU_RESOLVE_TS" value="26" varset="chip" variants="A6XX"/>
+ <value name="PC_CCU_FLUSH_DEPTH_TS" value="28" varset="chip" variants="A5XX-"/>
+ <value name="PC_CCU_FLUSH_COLOR_TS" value="29" varset="chip" variants="A5XX-"/>
+ <value name="BLIT" value="30" varset="chip" variants="A5XX-"/>
+ <value name="UNK_25" value="37" varset="chip" variants="A5XX"/>
+ <value name="LRZ_FLUSH" value="38" varset="chip" variants="A5XX-"/>
+ <value name="BLIT_OP_FILL_2D" value="39" varset="chip" variants="A5XX-"/>
+ <value name="BLIT_OP_COPY_2D" value="40" varset="chip" variants="A5XX-"/>
+ <value name="BLIT_OP_SCALE_2D" value="42" varset="chip" variants="A5XX-"/>
+ <value name="CONTEXT_DONE_2D" value="43" varset="chip" variants="A5XX-"/>
+ <value name="UNK_2C" value="44" varset="chip" variants="A5XX-"/>
+ <value name="UNK_2D" value="45" varset="chip" variants="A5XX-"/>
<!-- a6xx events -->
- <value name="CACHE_INVALIDATE" value="49" variants="A6XX"/>
+ <value name="CACHE_INVALIDATE" value="49" varset="chip" variants="A6XX"/>
</enum>
<enum name="pc_di_primtype">
another buffer at the same level. Must be at the end of IB, and
doesn't work with draw state IB's.
</doc>
- <value name="CP_INDIRECT_BUFFER_CHAIN" value="0x57" variants="A5XX-"/>
+ <value name="CP_INDIRECT_BUFFER_CHAIN" value="0x57" varset="chip" variants="A5XX-"/>
<doc>indirect buffer dispatch. same as IB, but init is pipelined</doc>
<value name="CP_INDIRECT_BUFFER_PFD" value="0x37"/>
<doc>wait for the IDLE state of the engine</doc>
<doc>wait until a register location is equal to a specific value</doc>
<value name="CP_WAIT_REG_EQ" value="0x52"/>
<doc>wait until a register location is >= a specific value</doc>
- <value name="CP_WAIT_REG_GTE" value="0x53" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_WAIT_REG_GTE" value="0x53" varset="chip" variants="A2XX-A4XX"/>
<doc>wait until a read completes</doc>
- <value name="CP_WAIT_UNTIL_READ" value="0x5c" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_WAIT_UNTIL_READ" value="0x5c" varset="chip" variants="A2XX-A4XX"/>
<doc>wait until all base/size writes from an IB_PFD packet have completed</doc>
<value name="CP_WAIT_IB_PFD_COMPLETE" value="0x5d"/>
<doc>register read/modify/write</doc>
<value name="CP_REG_RMW" value="0x21"/>
<doc>Set binning configuration registers</doc>
- <value name="CP_SET_BIN_DATA" value="0x2f" variants="A2XX,A3XX,A4XX"/>
- <value name="CP_SET_BIN_DATA5" value="0x2f" variants="A5XX,A6XX"/>
+ <value name="CP_SET_BIN_DATA" value="0x2f" varset="chip" variants="A2XX-A4XX"/>
+ <value name="CP_SET_BIN_DATA5" value="0x2f" varset="chip" variants="A5XX-"/>
<doc>reads register in chip and writes to memory</doc>
<value name="CP_REG_TO_MEM" value="0x3e"/>
<doc>write N 32-bit words to memory</doc>
<doc>conditional execution of a sequence of packets</doc>
<value name="CP_COND_EXEC" value="0x44"/>
<doc>conditional write to memory or register</doc>
- <value name="CP_COND_WRITE" value="0x45" variants="A2XX,A3XX,A4XX"/>
- <value name="CP_COND_WRITE5" value="0x45" variants="A5XX,A6XX"/>
+ <value name="CP_COND_WRITE" value="0x45" varset="chip" variants="A2XX-A4XX"/>
+ <value name="CP_COND_WRITE5" value="0x45" varset="chip" variants="A5XX-"/>
<doc>generate an event that creates a write to memory when completed</doc>
<value name="CP_EVENT_WRITE" value="0x46"/>
<doc>generate a VS|PS_done event</doc>
<doc>initiate fetch of index buffer and draw</doc>
<value name="CP_DRAW_INDX" value="0x22"/>
<doc>draw using supplied indices in packet</doc>
- <value name="CP_DRAW_INDX_2" value="0x36" variants="A2XX,A3XX,A4XX"/> <!-- this is something different on a6xx and unused on a5xx -->
+ <value name="CP_DRAW_INDX_2" value="0x36" varset="chip" variants="A2XX-A4XX"/> <!-- this is something different on a6xx and unused on a5xx -->
<doc>initiate fetch of index buffer and binIDs and draw</doc>
- <value name="CP_DRAW_INDX_BIN" value="0x34" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_DRAW_INDX_BIN" value="0x34" varset="chip" variants="A2XX-A4XX"/>
<doc>initiate fetch of bin IDs and draw using supplied indices</doc>
- <value name="CP_DRAW_INDX_2_BIN" value="0x35" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_DRAW_INDX_2_BIN" value="0x35" varset="chip" variants="A2XX-A4XX"/>
<doc>begin/end initiator for viz query extent processing</doc>
- <value name="CP_VIZ_QUERY" value="0x23" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_VIZ_QUERY" value="0x23" varset="chip" variants="A2XX-A4XX"/>
<doc>fetch state sub-blocks and initiate shader code DMAs</doc>
<value name="CP_SET_STATE" value="0x25"/>
<doc>load constant into chip and to memory</doc>
<doc>load sequencer instruction memory (code embedded in packet)</doc>
<value name="CP_IM_LOAD_IMMEDIATE" value="0x2b"/>
<doc>load constants from a location in memory</doc>
- <value name="CP_LOAD_CONSTANT_CONTEXT" value="0x2e" variants="A2XX"/>
+ <value name="CP_LOAD_CONSTANT_CONTEXT" value="0x2e" varset="chip" variants="A2XX"/>
<doc>selective invalidation of state pointers</doc>
<value name="CP_INVALIDATE_STATE" value="0x3b"/>
<doc>dynamically changes shader instruction memory partition</doc>
- <value name="CP_SET_SHADER_BASES" value="0x4a" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_SET_SHADER_BASES" value="0x4a" varset="chip" variants="A2XX-A4XX"/>
<doc>sets the 64-bit BIN_MASK register in the PFP</doc>
- <value name="CP_SET_BIN_MASK" value="0x50" variants="A2XX,A3XX,A4XX"/>
+ <value name="CP_SET_BIN_MASK" value="0x50" varset="chip" variants="A2XX-A4XX"/>
<doc>sets the 64-bit BIN_SELECT register in the PFP</doc>
<value name="CP_SET_BIN_SELECT" value="0x51"/>
<doc>updates the current context, if needed</doc>
<doc>generate interrupt from the command stream</doc>
<value name="CP_INTERRUPT" value="0x40"/>
<doc>copy sequencer instruction memory to system memory</doc>
- <value name="CP_IM_STORE" value="0x2c" variants="A2XX"/>
+ <value name="CP_IM_STORE" value="0x2c" varset="chip" variants="A2XX"/>
<!-- For a20x -->
<!-- TODO handle variants..
<!-- for a3xx -->
<doc>load high level sequencer command</doc>
- <value name="CP_LOAD_STATE" value="0x30" variants="A3XX"/>
- <value name="CP_LOAD_STATE4" value="0x30" variants="A4XX,A5XX"/>
+ <value name="CP_LOAD_STATE" value="0x30" varset="chip" variants="A3XX"/>
+ <value name="CP_LOAD_STATE4" value="0x30" varset="chip" variants="A4XX-A5XX"/>
<doc>Conditionally load a IB based on a flag, prefetch enabled</doc>
<value name="CP_COND_INDIRECT_BUFFER_PFE" value="0x3a"/>
<doc>Conditionally load a IB based on a flag, prefetch disabled</doc>
- <value name="CP_COND_INDIRECT_BUFFER_PFD" value="0x32" variants="A3XX"/>
+ <value name="CP_COND_INDIRECT_BUFFER_PFD" value="0x32" varset="chip" variants="A3XX"/>
<doc>Load a buffer with pre-fetch enabled</doc>
- <value name="CP_INDIRECT_BUFFER_PFE" value="0x3f" variants="A5XX"/>
+ <value name="CP_INDIRECT_BUFFER_PFE" value="0x3f" varset="chip" variants="A5XX"/>
<doc>Set bin (?)</doc>
- <value name="CP_SET_BIN" value="0x4c" variants="A2XX"/>
+ <value name="CP_SET_BIN" value="0x4c" varset="chip" variants="A2XX"/>
<doc>test 2 memory locations to dword values specified</doc>
<value name="CP_TEST_TWO_MEMS" value="0x71"/>
(A4x) save PM4 stream pointers to execute upon a visible draw
</doc>
- <value name="CP_SET_DRAW_STATE" value="0x43" variants="A4XX,A5XX,A6XX"/>
+ <value name="CP_SET_DRAW_STATE" value="0x43" varset="chip" variants="A4XX-"/>
<value name="CP_DRAW_INDX_OFFSET" value="0x38"/>
- <value name="CP_DRAW_INDIRECT" value="0x28" variants="A4XX,A5XX,A6XX"/>
- <value name="CP_DRAW_INDX_INDIRECT" value="0x29" variants="A4XX,A5XX,A6XX"/>
- <value name="CP_DRAW_INDIRECT_MULTI" value="0x2a" variants="A6XX"/>
+ <value name="CP_DRAW_INDIRECT" value="0x28" varset="chip" variants="A4XX-"/>
+ <value name="CP_DRAW_INDX_INDIRECT" value="0x29" varset="chip" variants="A4XX-"/>
+ <value name="CP_DRAW_INDIRECT_MULTI" value="0x2a" varset="chip" variants="A6XX"/>
<value name="CP_DRAW_AUTO" value="0x24"/>
<value name="CP_UNKNOWN_19" value="0x19"/>
for A4xx
Write to register with address that does not fit into type-0 pkt
</doc>
- <value name="CP_WIDE_REG_WRITE" value="0x74" variants="A4XX"/>
+ <value name="CP_WIDE_REG_WRITE" value="0x74" varset="chip" variants="A4XX"/>
<doc>copy from ME scratch RAM to a register</doc>
<value name="CP_SCRATCH_TO_REG" value="0x4d"/>
<doc>Memory to REG copy</doc>
<value name="CP_MEM_TO_REG" value="0x42"/>
- <value name="CP_EXEC_CS_INDIRECT" value="0x41" variants="A4XX,A5XX,A6XX"/>
+ <value name="CP_EXEC_CS_INDIRECT" value="0x41" varset="chip" variants="A4XX-"/>
<value name="CP_EXEC_CS" value="0x33"/>
<doc>
for a5xx
</doc>
- <value name="CP_PERFCOUNTER_ACTION" value="0x50" variants="A5XX"/>
+ <value name="CP_PERFCOUNTER_ACTION" value="0x50" varset="chip" variants="A5XX"/>
<!-- switches SMMU pagetable, used on a5xx+ only -->
- <value name="CP_SMMU_TABLE_UPDATE" value="0x53" variants="A5XX,A6XX"/>
+ <value name="CP_SMMU_TABLE_UPDATE" value="0x53" varset="chip" variants="A5XX-"/>
<!-- for a6xx -->
<doc>Tells CP the current mode of GPU operation</doc>
- <value name="CP_SET_MARKER" value="0x65" variants="A6XX"/>
+ <value name="CP_SET_MARKER" value="0x65" varset="chip" variants="A6XX"/>
<doc>Instruct CP to set a few internal CP registers</doc>
- <value name="CP_SET_PSEUDO_REG" value="0x56" variants="A6XX"/>
+ <value name="CP_SET_PSEUDO_REG" value="0x56" varset="chip" variants="A6XX"/>
<!--
pairs of regid and value.. seems to be used to program some TF
related regs:
-->
- <value name="CP_CONTEXT_REG_BUNCH" value="0x5c" variants="A5XX,A6XX"/>
+ <value name="CP_CONTEXT_REG_BUNCH" value="0x5c" varset="chip" variants="A5XX-"/>
<!-- A5XX Enable yield in RB only -->
- <value name="CP_YIELD_ENABLE" value="0x1c" variants="A5XX"/>
- <value name="CP_SKIP_IB2_ENABLE_GLOBAL" value="0x1d" variants="A5XX,A6XX"/>
- <value name="CP_SKIP_IB2_ENABLE_LOCAL" value="0x23" variants="A5XX,A6XX"/>
- <value name="CP_SET_SUBDRAW_SIZE" value="0x35" variants="A5XX,A6XX"/>
- <value name="CP_SET_VISIBILITY_OVERRIDE" value="0x64" variants="A5XX,A6XX"/>
+ <value name="CP_YIELD_ENABLE" value="0x1c" varset="chip" variants="A5XX"/>
+ <value name="CP_SKIP_IB2_ENABLE_GLOBAL" value="0x1d" varset="chip" variants="A5XX-"/>
+ <value name="CP_SKIP_IB2_ENABLE_LOCAL" value="0x23" varset="chip" variants="A5XX-"/>
+ <value name="CP_SET_SUBDRAW_SIZE" value="0x35" varset="chip" variants="A5XX-"/>
+ <value name="CP_SET_VISIBILITY_OVERRIDE" value="0x64" varset="chip" variants="A5XX-"/>
<!-- Enable/Disable/Defer A5x global preemption model -->
- <value name="CP_PREEMPT_ENABLE_GLOBAL" value="0x69" variants="A5XX"/>
+ <value name="CP_PREEMPT_ENABLE_GLOBAL" value="0x69" varset="chip" variants="A5XX"/>
<!-- Enable/Disable A5x local preemption model -->
- <value name="CP_PREEMPT_ENABLE_LOCAL" value="0x6a" variants="A5XX"/>
+ <value name="CP_PREEMPT_ENABLE_LOCAL" value="0x6a" varset="chip" variants="A5XX"/>
<!-- Yield token on a5xx similar to CP_PREEMPT on a4xx -->
- <value name="CP_CONTEXT_SWITCH_YIELD" value="0x6b" variants="A5XX"/>
+ <value name="CP_CONTEXT_SWITCH_YIELD" value="0x6b" varset="chip" variants="A5XX"/>
<!-- Inform CP about current render mode (needed for a5xx preemption) -->
- <value name="CP_SET_RENDER_MODE" value="0x6c" variants="A5XX"/>
- <value name="CP_COMPUTE_CHECKPOINT" value="0x6e" variants="A5XX"/>
+ <value name="CP_SET_RENDER_MODE" value="0x6c" varset="chip" variants="A5XX"/>
+ <value name="CP_COMPUTE_CHECKPOINT" value="0x6e" varset="chip" variants="A5XX"/>
<!-- check if this works on earlier.. -->
- <value name="CP_MEM_TO_MEM" value="0x73" variants="A5XX,A6XX"/>
- <value name="CP_BLIT" value="0x2c" variants="A5XX,A6XX"/>
+ <value name="CP_MEM_TO_MEM" value="0x73" varset="chip" variants="A5XX-"/>
+ <value name="CP_BLIT" value="0x2c" varset="chip" variants="A5XX-"/>
<!-- Test specified bit in specified register and set predicate -->
- <value name="CP_REG_TEST" value="0x39" variants="A5XX,A6XX"/>
+ <value name="CP_REG_TEST" value="0x39" varset="chip" variants="A5XX-"/>
<!--
Seems to set the mode flags which control which CP_SET_DRAW_STATE
CP_SET_MODE w/ payload of 0x1 seems to cause CP_SET_DRAW_STATE
packets w/ ENABLE_MASK & 0x6 to execute immediately
-->
- <value name="CP_SET_MODE" value="0x63" variants="A6XX"/>
+ <value name="CP_SET_MODE" value="0x63" varset="chip" variants="A6XX"/>
<!--
Seems like there are now separate blocks of state for VS vs FS/CS
CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE vs
CL_KERNEL_WORK_GROUP_SIZE)
-->
- <value name="CP_LOAD_STATE6_GEOM" value="0x32" variants="A6XX"/>
- <value name="CP_LOAD_STATE6_FRAG" value="0x34" variants="A6XX"/>
+ <value name="CP_LOAD_STATE6_GEOM" value="0x32" varset="chip" variants="A6XX"/>
+ <value name="CP_LOAD_STATE6_FRAG" value="0x34" varset="chip" variants="A6XX"/>
<!--
Note: For IBO state (Image/SSBOs) which have shared state across
shader stages, for 3d pipeline CP_LOAD_STATE6 is used. But for
compute shaders, CP_LOAD_STATE6_FRAG is used. Possibly they are
interchangable.
-->
- <value name="CP_LOAD_STATE6" value="0x36" variants="A6XX"/>
+ <value name="CP_LOAD_STATE6" value="0x36" varset="chip" variants="A6XX"/>
<!-- internal packets: -->
- <value name="IN_IB_PREFETCH_END" value="0x17" variants="A2XX"/>
- <value name="IN_SUBBLK_PREFETCH" value="0x1f" variants="A2XX"/>
- <value name="IN_INSTR_PREFETCH" value="0x20" variants="A2XX"/>
- <value name="IN_INSTR_MATCH" value="0x47" variants="A2XX"/>
- <value name="IN_CONST_PREFETCH" value="0x49" variants="A2XX"/>
- <value name="IN_INCR_UPDT_STATE" value="0x55" variants="A2XX"/>
- <value name="IN_INCR_UPDT_CONST" value="0x56" variants="A2XX"/>
- <value name="IN_INCR_UPDT_INSTR" value="0x57" variants="A2XX"/>
+ <value name="IN_IB_PREFETCH_END" value="0x17" varset="chip" variants="A2XX"/>
+ <value name="IN_SUBBLK_PREFETCH" value="0x1f" varset="chip" variants="A2XX"/>
+ <value name="IN_INSTR_PREFETCH" value="0x20" varset="chip" variants="A2XX"/>
+ <value name="IN_INSTR_MATCH" value="0x47" varset="chip" variants="A2XX"/>
+ <value name="IN_CONST_PREFETCH" value="0x49" varset="chip" variants="A2XX"/>
+ <value name="IN_INCR_UPDT_STATE" value="0x55" varset="chip" variants="A2XX"/>
+ <value name="IN_INCR_UPDT_CONST" value="0x56" varset="chip" variants="A2XX"/>
+ <value name="IN_INCR_UPDT_INSTR" value="0x57" varset="chip" variants="A2XX"/>
<!-- jmptable entry used to handle type4 packet on a5xx+: -->
- <value name="PKT4" value="0x04" variants="A5XX,A6XX"/>
+ <value name="PKT4" value="0x04" varset="chip" variants="A5XX-"/>
<!-- TODO do these exist on A5xx? -->
- <value name="CP_SCRATCH_WRITE" value="0x4c" variants="A6XX"/>
- <value name="CP_REG_TO_MEM_OFFSET_MEM" value="0x74" variants="A6XX"/>
- <value name="CP_REG_TO_MEM_OFFSET_REG" value="0x72" variants="A6XX"/>
- <value name="CP_WAIT_MEM_GTE" value="0x14" variants="A6XX"/>
- <value name="CP_WAIT_TWO_REGS" value="0x70" variants="A6XX"/>
- <value name="CP_MEMCPY" value="0x75" variants="A6XX"/>
- <value name="CP_SET_BIN_DATA5_OFFSET" value="0x2e" variants="A6XX"/>
- <value name="CP_SET_CTXSWITCH_IB" value="0x55" variants="A6XX"/>
+ <value name="CP_SCRATCH_WRITE" value="0x4c" varset="chip" variants="A6XX"/>
+ <value name="CP_REG_TO_MEM_OFFSET_MEM" value="0x74" varset="chip" variants="A6XX"/>
+ <value name="CP_REG_TO_MEM_OFFSET_REG" value="0x72" varset="chip" variants="A6XX"/>
+ <value name="CP_WAIT_MEM_GTE" value="0x14" varset="chip" variants="A6XX"/>
+ <value name="CP_WAIT_TWO_REGS" value="0x70" varset="chip" variants="A6XX"/>
+ <value name="CP_MEMCPY" value="0x75" varset="chip" variants="A6XX"/>
+ <value name="CP_SET_BIN_DATA5_OFFSET" value="0x2e" varset="chip" variants="A6XX"/>
+ <value name="CP_SET_CTXSWITCH_IB" value="0x55" varset="chip" variants="A6XX"/>
<!--
Seems to always have the payload:
guess there are some registers that the fw controls certain
bits.
-->
- <value name="CP_REG_WRITE" value="0x6d" variants="A6XX"/>
+ <value name="CP_REG_WRITE" value="0x6d" varset="chip" variants="A6XX"/>
</enum>
<bitfield name="STATE_TYPE" low="0" high="1" type="a4xx_state_type"/>
<bitfield name="EXT_SRC_ADDR" low="2" high="31" shr="2"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="EXT_SRC_ADDR_HI" low="0" high="31" shr="0"/>
</reg32>
</domain>
<bitfield name="FIRST_INDX" low="0" high="31"/>
</reg32>
- <stripe variants="A5XX-">
+ <stripe varset="chip" variants="A5XX-">
<reg32 offset="4" name="4">
<bitfield name="INDX_BASE_LO" low="0" high="31"/>
</reg32>
<domain name="CP_DRAW_INDIRECT" width="32" varset="chip" prefix="chip" variants="A4XX-">
<reg32 offset="0" name="0" type="vgt_draw_initiator_a4xx"/>
- <stripe variants="A4XX">
+ <stripe varset="chip" variants="A4XX">
<reg32 offset="1" name="1">
<bitfield name="INDIRECT" low="0" high="31"/>
</reg32>
</stripe>
- <stripe variants="A5XX-">
+ <stripe varset="chip" variants="A5XX-">
<reg32 offset="1" name="1">
<bitfield name="INDIRECT_LO" low="0" high="31"/>
</reg32>
<domain name="CP_DRAW_INDX_INDIRECT" width="32" varset="chip" prefix="chip" variants="A4XX-">
<reg32 offset="0" name="0" type="vgt_draw_initiator_a4xx"/>
- <stripe variants="A4XX">
+ <stripe varset="chip" variants="A4XX">
<reg32 offset="1" name="1">
<bitfield name="INDX_BASE" low="0" high="31"/>
</reg32>
<bitfield name="INDIRECT" low="0" high="31"/>
</reg32>
</stripe>
- <stripe variants="A5XX-">
+ <stripe varset="chip" variants="A5XX-">
<reg32 offset="1" name="1">
<bitfield name="INDX_BASE_LO" low="0" high="31"/>
</reg32>
<bitfield name="DISABLE" pos="17" type="boolean"/>
<bitfield name="DISABLE_ALL_GROUPS" pos="18" type="boolean"/>
<bitfield name="LOAD_IMMED" pos="19" type="boolean"/>
- <bitfield name="BINNING" pos="20" variants="A6XX-" type="boolean"/>
- <bitfield name="GMEM" pos="21" variants="A6XX-" type="boolean"/>
- <bitfield name="SYSMEM" pos="22" variants="A6XX-" type="boolean"/>
+ <bitfield name="BINNING" pos="20" varset="chip" variants="A6XX-" type="boolean"/>
+ <bitfield name="GMEM" pos="21" varset="chip" variants="A6XX-" type="boolean"/>
+ <bitfield name="SYSMEM" pos="22" varset="chip" variants="A6XX-" type="boolean"/>
<bitfield name="GROUP_ID" low="24" high="28" type="uint"/>
</reg32>
<reg32 offset="1" name="1">
<bitfield name="ADDR_LO" low="0" high="31" type="hex"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="ADDR_HI" low="0" high="31" type="hex"/>
</reg32>
</array>
<reg32 offset="1" name="1">
<bitfield name="DEST" low="0" high="31"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="DEST_HI" low="0" high="31"/>
</reg32>
</domain>
<reg32 offset="1" name="1">
<bitfield name="DEST" low="0" high="31"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="DEST_HI" low="0" high="31"/>
</reg32>
<reg32 offset="3" name="3">
<reg32 offset="1" name="1">
<bitfield name="DEST" low="0" high="31"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="DEST_HI" low="0" high="31"/>
</reg32>
<reg32 offset="3" name="3">
<reg32 offset="1" name="1">
<bitfield name="SRC" low="0" high="31"/>
</reg32>
- <reg32 offset="2" name="2" variants="A5XX-">
+ <reg32 offset="2" name="2" varset="chip" variants="A5XX-">
<bitfield name="SRC_HI" low="0" high="31"/>
</reg32>
</domain>
<bitfield name="EVENT" low="0" high="7" type="vgt_event_type"/>
<!-- when set, write back timestamp instead of value from packet: -->
<bitfield name="TIMESTAMP" pos="30" type="boolean"/>
+ <bitfield name="IRQ" pos="31" type="boolean"/>
</reg32>
<!--
TODO what is gpuaddr for, seems to be all 0's.. maybe needed for
<domain name="CP_EXEC_CS_INDIRECT" width="32" varset="chip" prefix="chip" variants="A4XX-">
<reg32 offset="0" name="0">
</reg32>
- <stripe variants="A4XX">
+ <stripe varset="chip" variants="A4XX">
<reg32 offset="1" name="1">
<bitfield name="ADDR" low="0" high="31"/>
</reg32>
<bitfield name="LOCALSIZEZ" low="22" high="31" type="uint"/>
</reg32>
</stripe>
- <stripe variants="A5XX-">
+ <stripe varset="chip" variants="A5XX-">
<reg32 offset="1" name="1">
<bitfield name="ADDR_LO" low="0" high="31"/>
</reg32>
<!-- compare two registers directly for equality -->
<value value="2" name="REG_COMPARE"/>
<!-- test if certain render modes are set via CP_SET_MARKER -->
- <value value="3" name="RENDER_MODE" variants="A6XX-"/>
+ <value value="3" name="RENDER_MODE" varset="chip" variants="A6XX-"/>
</enum>
<reg32 offset="0" name="0">
<bitfield name="REG0" low="0" high="17" type="hex"/>
-->
<!-- RM6_BINNING -->
- <bitfield name="BINNING" pos="25" variants="A6XX-" type="boolean"/>
+ <bitfield name="BINNING" pos="25" varset="chip" variants="A6XX-" type="boolean"/>
<!-- all others -->
- <bitfield name="GMEM" pos="26" variants="A6XX-" type="boolean"/>
+ <bitfield name="GMEM" pos="26" varset="chip" variants="A6XX-" type="boolean"/>
<!-- RM6_BYPASS -->
- <bitfield name="SYSMEM" pos="27" variants="A6XX-" type="boolean"/>
+ <bitfield name="SYSMEM" pos="27" varset="chip" variants="A6XX-" type="boolean"/>
<bitfield name="MODE" low="28" high="31" type="compare_mode"/>
</reg32>