1926deccbSFrançois Tigeot /* 2926deccbSFrançois Tigeot * Copyright 2011 Advanced Micro Devices, Inc. 3926deccbSFrançois Tigeot * 4926deccbSFrançois Tigeot * Permission is hereby granted, free of charge, to any person obtaining a 5926deccbSFrançois Tigeot * copy of this software and associated documentation files (the "Software"), 6926deccbSFrançois Tigeot * to deal in the Software without restriction, including without limitation 7926deccbSFrançois Tigeot * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8926deccbSFrançois Tigeot * and/or sell copies of the Software, and to permit persons to whom the 9926deccbSFrançois Tigeot * Software is furnished to do so, subject to the following conditions: 10926deccbSFrançois Tigeot * 11926deccbSFrançois Tigeot * The above copyright notice and this permission notice shall be included in 12926deccbSFrançois Tigeot * all copies or substantial portions of the Software. 13926deccbSFrançois Tigeot * 14926deccbSFrançois Tigeot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15926deccbSFrançois Tigeot * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16926deccbSFrançois Tigeot * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17926deccbSFrançois Tigeot * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18926deccbSFrançois Tigeot * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19926deccbSFrançois Tigeot * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20926deccbSFrançois Tigeot * OTHER DEALINGS IN THE SOFTWARE. 21926deccbSFrançois Tigeot * 22926deccbSFrançois Tigeot * Authors: Alex Deucher 23926deccbSFrançois Tigeot */ 24926deccbSFrançois Tigeot #ifndef SI_H 25926deccbSFrançois Tigeot #define SI_H 26926deccbSFrançois Tigeot 27926deccbSFrançois Tigeot #define TAHITI_RB_BITMAP_WIDTH_PER_SH 2 28926deccbSFrançois Tigeot 29926deccbSFrançois Tigeot #define TAHITI_GB_ADDR_CONFIG_GOLDEN 0x12011003 30926deccbSFrançois Tigeot #define VERDE_GB_ADDR_CONFIG_GOLDEN 0x12010002 31f43cf1b1SMichael Neumann #define HAINAN_GB_ADDR_CONFIG_GOLDEN 0x02010001 32f43cf1b1SMichael Neumann 3357e252bfSMichael Neumann #define SI_MAX_SH_GPRS 256 3457e252bfSMichael Neumann #define SI_MAX_TEMP_GPRS 16 3557e252bfSMichael Neumann #define SI_MAX_SH_THREADS 256 3657e252bfSMichael Neumann #define SI_MAX_SH_STACK_ENTRIES 4096 3757e252bfSMichael Neumann #define SI_MAX_FRC_EOV_CNT 16384 3857e252bfSMichael Neumann #define SI_MAX_BACKENDS 8 3957e252bfSMichael Neumann #define SI_MAX_BACKENDS_MASK 0xFF 4057e252bfSMichael Neumann #define SI_MAX_BACKENDS_PER_SE_MASK 0x0F 4157e252bfSMichael Neumann #define SI_MAX_SIMDS 12 4257e252bfSMichael Neumann #define SI_MAX_SIMDS_MASK 0x0FFF 4357e252bfSMichael Neumann #define SI_MAX_SIMDS_PER_SE_MASK 0x00FF 4457e252bfSMichael Neumann #define SI_MAX_PIPES 8 4557e252bfSMichael Neumann #define SI_MAX_PIPES_MASK 0xFF 4657e252bfSMichael Neumann #define SI_MAX_PIPES_PER_SIMD_MASK 0x3F 4757e252bfSMichael Neumann #define SI_MAX_LDS_NUM 0xFFFF 4857e252bfSMichael Neumann #define SI_MAX_TCC 16 4957e252bfSMichael Neumann #define SI_MAX_TCC_MASK 0xFFFF 5057e252bfSMichael Neumann 5157e252bfSMichael Neumann /* SMC IND accessor regs */ 5257e252bfSMichael Neumann #define SMC_IND_INDEX_0 0x200 5357e252bfSMichael Neumann #define SMC_IND_DATA_0 0x204 5457e252bfSMichael Neumann 5557e252bfSMichael Neumann #define SMC_IND_ACCESS_CNTL 0x228 5657e252bfSMichael Neumann # define AUTO_INCREMENT_IND_0 (1 << 0) 5757e252bfSMichael Neumann #define SMC_MESSAGE_0 0x22c 5857e252bfSMichael Neumann #define SMC_RESP_0 0x230 5957e252bfSMichael Neumann 6057e252bfSMichael Neumann /* CG IND registers are accessed via SMC indirect space + SMC_CG_IND_START */ 6157e252bfSMichael Neumann #define SMC_CG_IND_START 0xc0030000 6257e252bfSMichael Neumann #define SMC_CG_IND_END 0xc0040000 6357e252bfSMichael Neumann 6457e252bfSMichael Neumann #define CG_CGTT_LOCAL_0 0x400 6557e252bfSMichael Neumann #define CG_CGTT_LOCAL_1 0x401 6657e252bfSMichael Neumann 6757e252bfSMichael Neumann /* SMC IND registers */ 6857e252bfSMichael Neumann #define SMC_SYSCON_RESET_CNTL 0x80000000 6957e252bfSMichael Neumann # define RST_REG (1 << 0) 7057e252bfSMichael Neumann #define SMC_SYSCON_CLOCK_CNTL_0 0x80000004 7157e252bfSMichael Neumann # define CK_DISABLE (1 << 0) 7257e252bfSMichael Neumann # define CKEN (1 << 24) 7357e252bfSMichael Neumann 7457e252bfSMichael Neumann #define VGA_HDP_CONTROL 0x328 7557e252bfSMichael Neumann #define VGA_MEMORY_DISABLE (1 << 4) 7657e252bfSMichael Neumann 7757e252bfSMichael Neumann #define DCCG_DISP_SLOW_SELECT_REG 0x4fc 7857e252bfSMichael Neumann #define DCCG_DISP1_SLOW_SELECT(x) ((x) << 0) 7957e252bfSMichael Neumann #define DCCG_DISP1_SLOW_SELECT_MASK (7 << 0) 8057e252bfSMichael Neumann #define DCCG_DISP1_SLOW_SELECT_SHIFT 0 8157e252bfSMichael Neumann #define DCCG_DISP2_SLOW_SELECT(x) ((x) << 4) 8257e252bfSMichael Neumann #define DCCG_DISP2_SLOW_SELECT_MASK (7 << 4) 8357e252bfSMichael Neumann #define DCCG_DISP2_SLOW_SELECT_SHIFT 4 8457e252bfSMichael Neumann 8557e252bfSMichael Neumann #define CG_SPLL_FUNC_CNTL 0x600 8657e252bfSMichael Neumann #define SPLL_RESET (1 << 0) 8757e252bfSMichael Neumann #define SPLL_SLEEP (1 << 1) 8857e252bfSMichael Neumann #define SPLL_BYPASS_EN (1 << 3) 8957e252bfSMichael Neumann #define SPLL_REF_DIV(x) ((x) << 4) 9057e252bfSMichael Neumann #define SPLL_REF_DIV_MASK (0x3f << 4) 9157e252bfSMichael Neumann #define SPLL_PDIV_A(x) ((x) << 20) 9257e252bfSMichael Neumann #define SPLL_PDIV_A_MASK (0x7f << 20) 9357e252bfSMichael Neumann #define SPLL_PDIV_A_SHIFT 20 9457e252bfSMichael Neumann #define CG_SPLL_FUNC_CNTL_2 0x604 9557e252bfSMichael Neumann #define SCLK_MUX_SEL(x) ((x) << 0) 9657e252bfSMichael Neumann #define SCLK_MUX_SEL_MASK (0x1ff << 0) 97c6f73aabSFrançois Tigeot #define SPLL_CTLREQ_CHG (1 << 23) 98c6f73aabSFrançois Tigeot #define SCLK_MUX_UPDATE (1 << 26) 9957e252bfSMichael Neumann #define CG_SPLL_FUNC_CNTL_3 0x608 10057e252bfSMichael Neumann #define SPLL_FB_DIV(x) ((x) << 0) 10157e252bfSMichael Neumann #define SPLL_FB_DIV_MASK (0x3ffffff << 0) 10257e252bfSMichael Neumann #define SPLL_FB_DIV_SHIFT 0 10357e252bfSMichael Neumann #define SPLL_DITHEN (1 << 28) 10457e252bfSMichael Neumann #define CG_SPLL_FUNC_CNTL_4 0x60c 10557e252bfSMichael Neumann 106c6f73aabSFrançois Tigeot #define SPLL_STATUS 0x614 107c6f73aabSFrançois Tigeot #define SPLL_CHG_STATUS (1 << 1) 10857e252bfSMichael Neumann #define SPLL_CNTL_MODE 0x618 109c6f73aabSFrançois Tigeot #define SPLL_SW_DIR_CONTROL (1 << 0) 110c6f73aabSFrançois Tigeot # define SPLL_REFCLK_SEL(x) ((x) << 26) 111c6f73aabSFrançois Tigeot # define SPLL_REFCLK_SEL_MASK (3 << 26) 11257e252bfSMichael Neumann 11357e252bfSMichael Neumann #define CG_SPLL_SPREAD_SPECTRUM 0x620 11457e252bfSMichael Neumann #define SSEN (1 << 0) 11557e252bfSMichael Neumann #define CLK_S(x) ((x) << 4) 11657e252bfSMichael Neumann #define CLK_S_MASK (0xfff << 4) 11757e252bfSMichael Neumann #define CLK_S_SHIFT 4 11857e252bfSMichael Neumann #define CG_SPLL_SPREAD_SPECTRUM_2 0x624 11957e252bfSMichael Neumann #define CLK_V(x) ((x) << 0) 12057e252bfSMichael Neumann #define CLK_V_MASK (0x3ffffff << 0) 12157e252bfSMichael Neumann #define CLK_V_SHIFT 0 12257e252bfSMichael Neumann 12357e252bfSMichael Neumann #define CG_SPLL_AUTOSCALE_CNTL 0x62c 12457e252bfSMichael Neumann # define AUTOSCALE_ON_SS_CLEAR (1 << 9) 12557e252bfSMichael Neumann 126f43cf1b1SMichael Neumann /* discrete uvd clocks */ 127f43cf1b1SMichael Neumann #define CG_UPLL_FUNC_CNTL 0x634 128f43cf1b1SMichael Neumann # define UPLL_RESET_MASK 0x00000001 129f43cf1b1SMichael Neumann # define UPLL_SLEEP_MASK 0x00000002 130f43cf1b1SMichael Neumann # define UPLL_BYPASS_EN_MASK 0x00000004 131f43cf1b1SMichael Neumann # define UPLL_CTLREQ_MASK 0x00000008 132f43cf1b1SMichael Neumann # define UPLL_VCO_MODE_MASK 0x00000600 133f43cf1b1SMichael Neumann # define UPLL_REF_DIV_MASK 0x003F0000 134f43cf1b1SMichael Neumann # define UPLL_CTLACK_MASK 0x40000000 135f43cf1b1SMichael Neumann # define UPLL_CTLACK2_MASK 0x80000000 136f43cf1b1SMichael Neumann #define CG_UPLL_FUNC_CNTL_2 0x638 137f43cf1b1SMichael Neumann # define UPLL_PDIV_A(x) ((x) << 0) 138f43cf1b1SMichael Neumann # define UPLL_PDIV_A_MASK 0x0000007F 139f43cf1b1SMichael Neumann # define UPLL_PDIV_B(x) ((x) << 8) 140f43cf1b1SMichael Neumann # define UPLL_PDIV_B_MASK 0x00007F00 141f43cf1b1SMichael Neumann # define VCLK_SRC_SEL(x) ((x) << 20) 142f43cf1b1SMichael Neumann # define VCLK_SRC_SEL_MASK 0x01F00000 143f43cf1b1SMichael Neumann # define DCLK_SRC_SEL(x) ((x) << 25) 144f43cf1b1SMichael Neumann # define DCLK_SRC_SEL_MASK 0x3E000000 145f43cf1b1SMichael Neumann #define CG_UPLL_FUNC_CNTL_3 0x63C 146f43cf1b1SMichael Neumann # define UPLL_FB_DIV(x) ((x) << 0) 147f43cf1b1SMichael Neumann # define UPLL_FB_DIV_MASK 0x01FFFFFF 148f43cf1b1SMichael Neumann #define CG_UPLL_FUNC_CNTL_4 0x644 149f43cf1b1SMichael Neumann # define UPLL_SPARE_ISPARE9 0x00020000 150f43cf1b1SMichael Neumann #define CG_UPLL_FUNC_CNTL_5 0x648 151f43cf1b1SMichael Neumann # define RESET_ANTI_MUX_MASK 0x00000200 152f43cf1b1SMichael Neumann #define CG_UPLL_SPREAD_SPECTRUM 0x650 153f43cf1b1SMichael Neumann # define SSEN_MASK 0x00000001 154926deccbSFrançois Tigeot 15557e252bfSMichael Neumann #define MPLL_BYPASSCLK_SEL 0x65c 15657e252bfSMichael Neumann # define MPLL_CLKOUT_SEL(x) ((x) << 8) 15757e252bfSMichael Neumann # define MPLL_CLKOUT_SEL_MASK 0xFF00 15857e252bfSMichael Neumann 15957e252bfSMichael Neumann #define CG_CLKPIN_CNTL 0x660 16057e252bfSMichael Neumann # define XTALIN_DIVIDE (1 << 1) 16157e252bfSMichael Neumann # define BCLK_AS_XCLK (1 << 2) 16257e252bfSMichael Neumann #define CG_CLKPIN_CNTL_2 0x664 16357e252bfSMichael Neumann # define FORCE_BIF_REFCLK_EN (1 << 3) 16457e252bfSMichael Neumann # define MUX_TCLK_TO_XCLK (1 << 8) 16557e252bfSMichael Neumann 16657e252bfSMichael Neumann #define THM_CLK_CNTL 0x66c 16757e252bfSMichael Neumann # define CMON_CLK_SEL(x) ((x) << 0) 16857e252bfSMichael Neumann # define CMON_CLK_SEL_MASK 0xFF 16957e252bfSMichael Neumann # define TMON_CLK_SEL(x) ((x) << 8) 17057e252bfSMichael Neumann # define TMON_CLK_SEL_MASK 0xFF00 17157e252bfSMichael Neumann #define MISC_CLK_CNTL 0x670 17257e252bfSMichael Neumann # define DEEP_SLEEP_CLK_SEL(x) ((x) << 0) 17357e252bfSMichael Neumann # define DEEP_SLEEP_CLK_SEL_MASK 0xFF 17457e252bfSMichael Neumann # define ZCLK_SEL(x) ((x) << 8) 17557e252bfSMichael Neumann # define ZCLK_SEL_MASK 0xFF00 17657e252bfSMichael Neumann 17757e252bfSMichael Neumann #define CG_THERMAL_CTRL 0x700 17857e252bfSMichael Neumann #define DPM_EVENT_SRC(x) ((x) << 0) 17957e252bfSMichael Neumann #define DPM_EVENT_SRC_MASK (7 << 0) 18057e252bfSMichael Neumann #define DIG_THERM_DPM(x) ((x) << 14) 18157e252bfSMichael Neumann #define DIG_THERM_DPM_MASK 0x003FC000 18257e252bfSMichael Neumann #define DIG_THERM_DPM_SHIFT 14 1837dcf36dcSFrançois Tigeot #define CG_THERMAL_STATUS 0x704 1847dcf36dcSFrançois Tigeot #define FDO_PWM_DUTY(x) ((x) << 9) 1857dcf36dcSFrançois Tigeot #define FDO_PWM_DUTY_MASK (0xff << 9) 1867dcf36dcSFrançois Tigeot #define FDO_PWM_DUTY_SHIFT 9 18757e252bfSMichael Neumann #define CG_THERMAL_INT 0x708 18857e252bfSMichael Neumann #define DIG_THERM_INTH(x) ((x) << 8) 18957e252bfSMichael Neumann #define DIG_THERM_INTH_MASK 0x0000FF00 19057e252bfSMichael Neumann #define DIG_THERM_INTH_SHIFT 8 19157e252bfSMichael Neumann #define DIG_THERM_INTL(x) ((x) << 16) 19257e252bfSMichael Neumann #define DIG_THERM_INTL_MASK 0x00FF0000 19357e252bfSMichael Neumann #define DIG_THERM_INTL_SHIFT 16 19457e252bfSMichael Neumann #define THERM_INT_MASK_HIGH (1 << 24) 19557e252bfSMichael Neumann #define THERM_INT_MASK_LOW (1 << 25) 19657e252bfSMichael Neumann 1977dcf36dcSFrançois Tigeot #define CG_MULT_THERMAL_CTRL 0x710 1987dcf36dcSFrançois Tigeot #define TEMP_SEL(x) ((x) << 20) 1997dcf36dcSFrançois Tigeot #define TEMP_SEL_MASK (0xff << 20) 2007dcf36dcSFrançois Tigeot #define TEMP_SEL_SHIFT 20 201926deccbSFrançois Tigeot #define CG_MULT_THERMAL_STATUS 0x714 202926deccbSFrançois Tigeot #define ASIC_MAX_TEMP(x) ((x) << 0) 203926deccbSFrançois Tigeot #define ASIC_MAX_TEMP_MASK 0x000001ff 204926deccbSFrançois Tigeot #define ASIC_MAX_TEMP_SHIFT 0 205926deccbSFrançois Tigeot #define CTF_TEMP(x) ((x) << 9) 206926deccbSFrançois Tigeot #define CTF_TEMP_MASK 0x0003fe00 207926deccbSFrançois Tigeot #define CTF_TEMP_SHIFT 9 208926deccbSFrançois Tigeot 2097dcf36dcSFrançois Tigeot #define CG_FDO_CTRL0 0x754 2107dcf36dcSFrançois Tigeot #define FDO_STATIC_DUTY(x) ((x) << 0) 2117dcf36dcSFrançois Tigeot #define FDO_STATIC_DUTY_MASK 0x000000FF 2127dcf36dcSFrançois Tigeot #define FDO_STATIC_DUTY_SHIFT 0 2137dcf36dcSFrançois Tigeot #define CG_FDO_CTRL1 0x758 2147dcf36dcSFrançois Tigeot #define FMAX_DUTY100(x) ((x) << 0) 2157dcf36dcSFrançois Tigeot #define FMAX_DUTY100_MASK 0x000000FF 2167dcf36dcSFrançois Tigeot #define FMAX_DUTY100_SHIFT 0 2177dcf36dcSFrançois Tigeot #define CG_FDO_CTRL2 0x75C 2187dcf36dcSFrançois Tigeot #define TMIN(x) ((x) << 0) 2197dcf36dcSFrançois Tigeot #define TMIN_MASK 0x000000FF 2207dcf36dcSFrançois Tigeot #define TMIN_SHIFT 0 2217dcf36dcSFrançois Tigeot #define FDO_PWM_MODE(x) ((x) << 11) 2227dcf36dcSFrançois Tigeot #define FDO_PWM_MODE_MASK (7 << 11) 2237dcf36dcSFrançois Tigeot #define FDO_PWM_MODE_SHIFT 11 2247dcf36dcSFrançois Tigeot #define TACH_PWM_RESP_RATE(x) ((x) << 25) 2257dcf36dcSFrançois Tigeot #define TACH_PWM_RESP_RATE_MASK (0x7f << 25) 2267dcf36dcSFrançois Tigeot #define TACH_PWM_RESP_RATE_SHIFT 25 2277dcf36dcSFrançois Tigeot 2287dcf36dcSFrançois Tigeot #define CG_TACH_CTRL 0x770 2297dcf36dcSFrançois Tigeot # define EDGE_PER_REV(x) ((x) << 0) 2307dcf36dcSFrançois Tigeot # define EDGE_PER_REV_MASK (0x7 << 0) 2317dcf36dcSFrançois Tigeot # define EDGE_PER_REV_SHIFT 0 2327dcf36dcSFrançois Tigeot # define TARGET_PERIOD(x) ((x) << 3) 2337dcf36dcSFrançois Tigeot # define TARGET_PERIOD_MASK 0xfffffff8 2347dcf36dcSFrançois Tigeot # define TARGET_PERIOD_SHIFT 3 2357dcf36dcSFrançois Tigeot #define CG_TACH_STATUS 0x774 2367dcf36dcSFrançois Tigeot # define TACH_PERIOD(x) ((x) << 0) 2377dcf36dcSFrançois Tigeot # define TACH_PERIOD_MASK 0xffffffff 2387dcf36dcSFrançois Tigeot # define TACH_PERIOD_SHIFT 0 2397dcf36dcSFrançois Tigeot 24057e252bfSMichael Neumann #define GENERAL_PWRMGT 0x780 24157e252bfSMichael Neumann # define GLOBAL_PWRMGT_EN (1 << 0) 24257e252bfSMichael Neumann # define STATIC_PM_EN (1 << 1) 24357e252bfSMichael Neumann # define THERMAL_PROTECTION_DIS (1 << 2) 24457e252bfSMichael Neumann # define THERMAL_PROTECTION_TYPE (1 << 3) 24557e252bfSMichael Neumann # define SW_SMIO_INDEX(x) ((x) << 6) 24657e252bfSMichael Neumann # define SW_SMIO_INDEX_MASK (1 << 6) 24757e252bfSMichael Neumann # define SW_SMIO_INDEX_SHIFT 6 24857e252bfSMichael Neumann # define VOLT_PWRMGT_EN (1 << 10) 24957e252bfSMichael Neumann # define DYN_SPREAD_SPECTRUM_EN (1 << 23) 25057e252bfSMichael Neumann #define CG_TPC 0x784 25157e252bfSMichael Neumann #define SCLK_PWRMGT_CNTL 0x788 25257e252bfSMichael Neumann # define SCLK_PWRMGT_OFF (1 << 0) 25357e252bfSMichael Neumann # define SCLK_LOW_D1 (1 << 1) 25457e252bfSMichael Neumann # define FIR_RESET (1 << 4) 25557e252bfSMichael Neumann # define FIR_FORCE_TREND_SEL (1 << 5) 25657e252bfSMichael Neumann # define FIR_TREND_MODE (1 << 6) 25757e252bfSMichael Neumann # define DYN_GFX_CLK_OFF_EN (1 << 7) 25857e252bfSMichael Neumann # define GFX_CLK_FORCE_ON (1 << 8) 25957e252bfSMichael Neumann # define GFX_CLK_REQUEST_OFF (1 << 9) 26057e252bfSMichael Neumann # define GFX_CLK_FORCE_OFF (1 << 10) 26157e252bfSMichael Neumann # define GFX_CLK_OFF_ACPI_D1 (1 << 11) 26257e252bfSMichael Neumann # define GFX_CLK_OFF_ACPI_D2 (1 << 12) 26357e252bfSMichael Neumann # define GFX_CLK_OFF_ACPI_D3 (1 << 13) 26457e252bfSMichael Neumann # define DYN_LIGHT_SLEEP_EN (1 << 14) 265926deccbSFrançois Tigeot 26657e252bfSMichael Neumann #define TARGET_AND_CURRENT_PROFILE_INDEX 0x798 26757e252bfSMichael Neumann # define CURRENT_STATE_INDEX_MASK (0xf << 4) 26857e252bfSMichael Neumann # define CURRENT_STATE_INDEX_SHIFT 4 269926deccbSFrançois Tigeot 27057e252bfSMichael Neumann #define CG_FTV 0x7bc 27157e252bfSMichael Neumann 27257e252bfSMichael Neumann #define CG_FFCT_0 0x7c0 27357e252bfSMichael Neumann # define UTC_0(x) ((x) << 0) 27457e252bfSMichael Neumann # define UTC_0_MASK (0x3ff << 0) 27557e252bfSMichael Neumann # define DTC_0(x) ((x) << 10) 27657e252bfSMichael Neumann # define DTC_0_MASK (0x3ff << 10) 27757e252bfSMichael Neumann 27857e252bfSMichael Neumann #define CG_BSP 0x7fc 27957e252bfSMichael Neumann # define BSP(x) ((x) << 0) 28057e252bfSMichael Neumann # define BSP_MASK (0xffff << 0) 28157e252bfSMichael Neumann # define BSU(x) ((x) << 16) 28257e252bfSMichael Neumann # define BSU_MASK (0xf << 16) 28357e252bfSMichael Neumann #define CG_AT 0x800 28457e252bfSMichael Neumann # define CG_R(x) ((x) << 0) 28557e252bfSMichael Neumann # define CG_R_MASK (0xffff << 0) 28657e252bfSMichael Neumann # define CG_L(x) ((x) << 16) 28757e252bfSMichael Neumann # define CG_L_MASK (0xffff << 16) 28857e252bfSMichael Neumann 28957e252bfSMichael Neumann #define CG_GIT 0x804 29057e252bfSMichael Neumann # define CG_GICST(x) ((x) << 0) 29157e252bfSMichael Neumann # define CG_GICST_MASK (0xffff << 0) 29257e252bfSMichael Neumann # define CG_GIPOT(x) ((x) << 16) 29357e252bfSMichael Neumann # define CG_GIPOT_MASK (0xffff << 16) 29457e252bfSMichael Neumann 29557e252bfSMichael Neumann #define CG_SSP 0x80c 29657e252bfSMichael Neumann # define SST(x) ((x) << 0) 29757e252bfSMichael Neumann # define SST_MASK (0xffff << 0) 29857e252bfSMichael Neumann # define SSTU(x) ((x) << 16) 29957e252bfSMichael Neumann # define SSTU_MASK (0xf << 16) 30057e252bfSMichael Neumann 30157e252bfSMichael Neumann #define CG_DISPLAY_GAP_CNTL 0x828 30257e252bfSMichael Neumann # define DISP1_GAP(x) ((x) << 0) 30357e252bfSMichael Neumann # define DISP1_GAP_MASK (3 << 0) 30457e252bfSMichael Neumann # define DISP2_GAP(x) ((x) << 2) 30557e252bfSMichael Neumann # define DISP2_GAP_MASK (3 << 2) 30657e252bfSMichael Neumann # define VBI_TIMER_COUNT(x) ((x) << 4) 30757e252bfSMichael Neumann # define VBI_TIMER_COUNT_MASK (0x3fff << 4) 30857e252bfSMichael Neumann # define VBI_TIMER_UNIT(x) ((x) << 20) 30957e252bfSMichael Neumann # define VBI_TIMER_UNIT_MASK (7 << 20) 31057e252bfSMichael Neumann # define DISP1_GAP_MCHG(x) ((x) << 24) 31157e252bfSMichael Neumann # define DISP1_GAP_MCHG_MASK (3 << 24) 31257e252bfSMichael Neumann # define DISP2_GAP_MCHG(x) ((x) << 26) 31357e252bfSMichael Neumann # define DISP2_GAP_MCHG_MASK (3 << 26) 31457e252bfSMichael Neumann 31557e252bfSMichael Neumann #define CG_ULV_CONTROL 0x878 31657e252bfSMichael Neumann #define CG_ULV_PARAMETER 0x87c 31757e252bfSMichael Neumann 31857e252bfSMichael Neumann #define SMC_SCRATCH0 0x884 31957e252bfSMichael Neumann 32057e252bfSMichael Neumann #define CG_CAC_CTRL 0x8b8 32157e252bfSMichael Neumann # define CAC_WINDOW(x) ((x) << 0) 32257e252bfSMichael Neumann # define CAC_WINDOW_MASK 0x00ffffff 323b403bed8SMichael Neumann 324926deccbSFrançois Tigeot #define DMIF_ADDR_CONFIG 0xBD4 325926deccbSFrançois Tigeot 326f43cf1b1SMichael Neumann #define DMIF_ADDR_CALC 0xC00 327f43cf1b1SMichael Neumann 3284cd92098Szrj #define PIPE0_DMIF_BUFFER_CONTROL 0x0ca0 3294cd92098Szrj # define DMIF_BUFFERS_ALLOCATED(x) ((x) << 0) 3304cd92098Szrj # define DMIF_BUFFERS_ALLOCATED_COMPLETED (1 << 4) 3314cd92098Szrj 332926deccbSFrançois Tigeot #define SRBM_STATUS 0xE50 333b403bed8SMichael Neumann #define GRBM_RQ_PENDING (1 << 5) 334b403bed8SMichael Neumann #define VMC_BUSY (1 << 8) 335b403bed8SMichael Neumann #define MCB_BUSY (1 << 9) 336b403bed8SMichael Neumann #define MCB_NON_DISPLAY_BUSY (1 << 10) 337b403bed8SMichael Neumann #define MCC_BUSY (1 << 11) 338b403bed8SMichael Neumann #define MCD_BUSY (1 << 12) 339b403bed8SMichael Neumann #define SEM_BUSY (1 << 14) 340b403bed8SMichael Neumann #define IH_BUSY (1 << 17) 341926deccbSFrançois Tigeot 342926deccbSFrançois Tigeot #define SRBM_SOFT_RESET 0x0E60 343926deccbSFrançois Tigeot #define SOFT_RESET_BIF (1 << 1) 344926deccbSFrançois Tigeot #define SOFT_RESET_DC (1 << 5) 345926deccbSFrançois Tigeot #define SOFT_RESET_DMA1 (1 << 6) 346926deccbSFrançois Tigeot #define SOFT_RESET_GRBM (1 << 8) 347926deccbSFrançois Tigeot #define SOFT_RESET_HDP (1 << 9) 348926deccbSFrançois Tigeot #define SOFT_RESET_IH (1 << 10) 349926deccbSFrançois Tigeot #define SOFT_RESET_MC (1 << 11) 350926deccbSFrançois Tigeot #define SOFT_RESET_ROM (1 << 14) 351926deccbSFrançois Tigeot #define SOFT_RESET_SEM (1 << 15) 352926deccbSFrançois Tigeot #define SOFT_RESET_VMC (1 << 17) 353926deccbSFrançois Tigeot #define SOFT_RESET_DMA (1 << 20) 354926deccbSFrançois Tigeot #define SOFT_RESET_TST (1 << 21) 355926deccbSFrançois Tigeot #define SOFT_RESET_REGBB (1 << 22) 356926deccbSFrançois Tigeot #define SOFT_RESET_ORB (1 << 23) 357926deccbSFrançois Tigeot 358926deccbSFrançois Tigeot #define CC_SYS_RB_BACKEND_DISABLE 0xe80 359926deccbSFrançois Tigeot #define GC_USER_SYS_RB_BACKEND_DISABLE 0xe84 360926deccbSFrançois Tigeot 361c59a5c48SFrançois Tigeot #define SRBM_READ_ERROR 0xE98 362c59a5c48SFrançois Tigeot #define SRBM_INT_CNTL 0xEA0 363c59a5c48SFrançois Tigeot #define SRBM_INT_ACK 0xEA8 364c59a5c48SFrançois Tigeot 365b403bed8SMichael Neumann #define SRBM_STATUS2 0x0EC4 366b403bed8SMichael Neumann #define DMA_BUSY (1 << 5) 367b403bed8SMichael Neumann #define DMA1_BUSY (1 << 6) 368b403bed8SMichael Neumann 369926deccbSFrançois Tigeot #define VM_L2_CNTL 0x1400 370926deccbSFrançois Tigeot #define ENABLE_L2_CACHE (1 << 0) 371926deccbSFrançois Tigeot #define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) 372926deccbSFrançois Tigeot #define L2_CACHE_PTE_ENDIAN_SWAP_MODE(x) ((x) << 2) 373926deccbSFrançois Tigeot #define L2_CACHE_PDE_ENDIAN_SWAP_MODE(x) ((x) << 4) 374926deccbSFrançois Tigeot #define ENABLE_L2_PTE_CACHE_LRU_UPDATE_BY_WRITE (1 << 9) 375926deccbSFrançois Tigeot #define ENABLE_L2_PDE0_CACHE_LRU_UPDATE_BY_WRITE (1 << 10) 376926deccbSFrançois Tigeot #define EFFECTIVE_L2_QUEUE_SIZE(x) (((x) & 7) << 15) 377926deccbSFrançois Tigeot #define CONTEXT1_IDENTITY_ACCESS_MODE(x) (((x) & 3) << 19) 378926deccbSFrançois Tigeot #define VM_L2_CNTL2 0x1404 379926deccbSFrançois Tigeot #define INVALIDATE_ALL_L1_TLBS (1 << 0) 380926deccbSFrançois Tigeot #define INVALIDATE_L2_CACHE (1 << 1) 381926deccbSFrançois Tigeot #define INVALIDATE_CACHE_MODE(x) ((x) << 26) 382926deccbSFrançois Tigeot #define INVALIDATE_PTE_AND_PDE_CACHES 0 383926deccbSFrançois Tigeot #define INVALIDATE_ONLY_PTE_CACHES 1 384926deccbSFrançois Tigeot #define INVALIDATE_ONLY_PDE_CACHES 2 385926deccbSFrançois Tigeot #define VM_L2_CNTL3 0x1408 386926deccbSFrançois Tigeot #define BANK_SELECT(x) ((x) << 0) 387926deccbSFrançois Tigeot #define L2_CACHE_UPDATE_MODE(x) ((x) << 6) 388926deccbSFrançois Tigeot #define L2_CACHE_BIGK_FRAGMENT_SIZE(x) ((x) << 15) 389926deccbSFrançois Tigeot #define L2_CACHE_BIGK_ASSOCIATIVITY (1 << 20) 390926deccbSFrançois Tigeot #define VM_L2_STATUS 0x140C 391926deccbSFrançois Tigeot #define L2_BUSY (1 << 0) 392926deccbSFrançois Tigeot #define VM_CONTEXT0_CNTL 0x1410 393926deccbSFrançois Tigeot #define ENABLE_CONTEXT (1 << 0) 394926deccbSFrançois Tigeot #define PAGE_TABLE_DEPTH(x) (((x) & 3) << 1) 395926deccbSFrançois Tigeot #define RANGE_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 3) 396926deccbSFrançois Tigeot #define RANGE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 4) 397926deccbSFrançois Tigeot #define DUMMY_PAGE_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 6) 398926deccbSFrançois Tigeot #define DUMMY_PAGE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 7) 399926deccbSFrançois Tigeot #define PDE0_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 9) 400926deccbSFrançois Tigeot #define PDE0_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 10) 401926deccbSFrançois Tigeot #define VALID_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 12) 402926deccbSFrançois Tigeot #define VALID_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 13) 403926deccbSFrançois Tigeot #define READ_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 15) 404926deccbSFrançois Tigeot #define READ_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 16) 405926deccbSFrançois Tigeot #define WRITE_PROTECTION_FAULT_ENABLE_INTERRUPT (1 << 18) 406926deccbSFrançois Tigeot #define WRITE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 19) 407c6f73aabSFrançois Tigeot #define PAGE_TABLE_BLOCK_SIZE(x) (((x) & 0xF) << 24) 408926deccbSFrançois Tigeot #define VM_CONTEXT1_CNTL 0x1414 409926deccbSFrançois Tigeot #define VM_CONTEXT0_CNTL2 0x1430 410926deccbSFrançois Tigeot #define VM_CONTEXT1_CNTL2 0x1434 411926deccbSFrançois Tigeot #define VM_CONTEXT8_PAGE_TABLE_BASE_ADDR 0x1438 412926deccbSFrançois Tigeot #define VM_CONTEXT9_PAGE_TABLE_BASE_ADDR 0x143c 413926deccbSFrançois Tigeot #define VM_CONTEXT10_PAGE_TABLE_BASE_ADDR 0x1440 414926deccbSFrançois Tigeot #define VM_CONTEXT11_PAGE_TABLE_BASE_ADDR 0x1444 415926deccbSFrançois Tigeot #define VM_CONTEXT12_PAGE_TABLE_BASE_ADDR 0x1448 416926deccbSFrançois Tigeot #define VM_CONTEXT13_PAGE_TABLE_BASE_ADDR 0x144c 417926deccbSFrançois Tigeot #define VM_CONTEXT14_PAGE_TABLE_BASE_ADDR 0x1450 418926deccbSFrançois Tigeot #define VM_CONTEXT15_PAGE_TABLE_BASE_ADDR 0x1454 419926deccbSFrançois Tigeot 420926deccbSFrançois Tigeot #define VM_CONTEXT1_PROTECTION_FAULT_ADDR 0x14FC 421926deccbSFrançois Tigeot #define VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x14DC 42257e252bfSMichael Neumann #define PROTECTIONS_MASK (0xf << 0) 42357e252bfSMichael Neumann #define PROTECTIONS_SHIFT 0 42457e252bfSMichael Neumann /* bit 0: range 42557e252bfSMichael Neumann * bit 1: pde0 42657e252bfSMichael Neumann * bit 2: valid 42757e252bfSMichael Neumann * bit 3: read 42857e252bfSMichael Neumann * bit 4: write 42957e252bfSMichael Neumann */ 43057e252bfSMichael Neumann #define MEMORY_CLIENT_ID_MASK (0xff << 12) 43157e252bfSMichael Neumann #define MEMORY_CLIENT_ID_SHIFT 12 43257e252bfSMichael Neumann #define MEMORY_CLIENT_RW_MASK (1 << 24) 43357e252bfSMichael Neumann #define MEMORY_CLIENT_RW_SHIFT 24 43457e252bfSMichael Neumann #define FAULT_VMID_MASK (0xf << 25) 43557e252bfSMichael Neumann #define FAULT_VMID_SHIFT 25 436926deccbSFrançois Tigeot 437926deccbSFrançois Tigeot #define VM_INVALIDATE_REQUEST 0x1478 438926deccbSFrançois Tigeot #define VM_INVALIDATE_RESPONSE 0x147c 439926deccbSFrançois Tigeot 440926deccbSFrançois Tigeot #define VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR 0x1518 441926deccbSFrançois Tigeot #define VM_CONTEXT1_PROTECTION_FAULT_DEFAULT_ADDR 0x151c 442926deccbSFrançois Tigeot 443926deccbSFrançois Tigeot #define VM_CONTEXT0_PAGE_TABLE_BASE_ADDR 0x153c 444926deccbSFrançois Tigeot #define VM_CONTEXT1_PAGE_TABLE_BASE_ADDR 0x1540 445926deccbSFrançois Tigeot #define VM_CONTEXT2_PAGE_TABLE_BASE_ADDR 0x1544 446926deccbSFrançois Tigeot #define VM_CONTEXT3_PAGE_TABLE_BASE_ADDR 0x1548 447926deccbSFrançois Tigeot #define VM_CONTEXT4_PAGE_TABLE_BASE_ADDR 0x154c 448926deccbSFrançois Tigeot #define VM_CONTEXT5_PAGE_TABLE_BASE_ADDR 0x1550 449926deccbSFrançois Tigeot #define VM_CONTEXT6_PAGE_TABLE_BASE_ADDR 0x1554 450926deccbSFrançois Tigeot #define VM_CONTEXT7_PAGE_TABLE_BASE_ADDR 0x1558 451926deccbSFrançois Tigeot #define VM_CONTEXT0_PAGE_TABLE_START_ADDR 0x155c 452926deccbSFrançois Tigeot #define VM_CONTEXT1_PAGE_TABLE_START_ADDR 0x1560 453926deccbSFrançois Tigeot 454926deccbSFrançois Tigeot #define VM_CONTEXT0_PAGE_TABLE_END_ADDR 0x157C 455926deccbSFrançois Tigeot #define VM_CONTEXT1_PAGE_TABLE_END_ADDR 0x1580 456926deccbSFrançois Tigeot 45757e252bfSMichael Neumann #define VM_L2_CG 0x15c0 45857e252bfSMichael Neumann #define MC_CG_ENABLE (1 << 18) 45957e252bfSMichael Neumann #define MC_LS_ENABLE (1 << 19) 46057e252bfSMichael Neumann 461926deccbSFrançois Tigeot #define MC_SHARED_CHMAP 0x2004 462926deccbSFrançois Tigeot #define NOOFCHAN_SHIFT 12 463926deccbSFrançois Tigeot #define NOOFCHAN_MASK 0x0000f000 464926deccbSFrançois Tigeot #define MC_SHARED_CHREMAP 0x2008 465926deccbSFrançois Tigeot 466926deccbSFrançois Tigeot #define MC_VM_FB_LOCATION 0x2024 467926deccbSFrançois Tigeot #define MC_VM_AGP_TOP 0x2028 468926deccbSFrançois Tigeot #define MC_VM_AGP_BOT 0x202C 469926deccbSFrançois Tigeot #define MC_VM_AGP_BASE 0x2030 470926deccbSFrançois Tigeot #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034 471926deccbSFrançois Tigeot #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038 472926deccbSFrançois Tigeot #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C 473926deccbSFrançois Tigeot 474926deccbSFrançois Tigeot #define MC_VM_MX_L1_TLB_CNTL 0x2064 475926deccbSFrançois Tigeot #define ENABLE_L1_TLB (1 << 0) 476926deccbSFrançois Tigeot #define ENABLE_L1_FRAGMENT_PROCESSING (1 << 1) 477926deccbSFrançois Tigeot #define SYSTEM_ACCESS_MODE_PA_ONLY (0 << 3) 478926deccbSFrançois Tigeot #define SYSTEM_ACCESS_MODE_USE_SYS_MAP (1 << 3) 479926deccbSFrançois Tigeot #define SYSTEM_ACCESS_MODE_IN_SYS (2 << 3) 480926deccbSFrançois Tigeot #define SYSTEM_ACCESS_MODE_NOT_IN_SYS (3 << 3) 481926deccbSFrançois Tigeot #define SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU (0 << 5) 482926deccbSFrançois Tigeot #define ENABLE_ADVANCED_DRIVER_MODEL (1 << 6) 483926deccbSFrançois Tigeot 484926deccbSFrançois Tigeot #define MC_SHARED_BLACKOUT_CNTL 0x20ac 485926deccbSFrançois Tigeot 48657e252bfSMichael Neumann #define MC_HUB_MISC_HUB_CG 0x20b8 48757e252bfSMichael Neumann #define MC_HUB_MISC_VM_CG 0x20bc 48857e252bfSMichael Neumann 48957e252bfSMichael Neumann #define MC_HUB_MISC_SIP_CG 0x20c0 49057e252bfSMichael Neumann 49157e252bfSMichael Neumann #define MC_XPB_CLK_GAT 0x2478 49257e252bfSMichael Neumann 49357e252bfSMichael Neumann #define MC_CITF_MISC_RD_CG 0x2648 49457e252bfSMichael Neumann #define MC_CITF_MISC_WR_CG 0x264c 49557e252bfSMichael Neumann #define MC_CITF_MISC_VM_CG 0x2650 49657e252bfSMichael Neumann 497926deccbSFrançois Tigeot #define MC_ARB_RAMCFG 0x2760 498926deccbSFrançois Tigeot #define NOOFBANK_SHIFT 0 499926deccbSFrançois Tigeot #define NOOFBANK_MASK 0x00000003 500926deccbSFrançois Tigeot #define NOOFRANK_SHIFT 2 501926deccbSFrançois Tigeot #define NOOFRANK_MASK 0x00000004 502926deccbSFrançois Tigeot #define NOOFROWS_SHIFT 3 503926deccbSFrançois Tigeot #define NOOFROWS_MASK 0x00000038 504926deccbSFrançois Tigeot #define NOOFCOLS_SHIFT 6 505926deccbSFrançois Tigeot #define NOOFCOLS_MASK 0x000000C0 506926deccbSFrançois Tigeot #define CHANSIZE_SHIFT 8 507926deccbSFrançois Tigeot #define CHANSIZE_MASK 0x00000100 508926deccbSFrançois Tigeot #define CHANSIZE_OVERRIDE (1 << 11) 509926deccbSFrançois Tigeot #define NOOFGROUPS_SHIFT 12 510926deccbSFrançois Tigeot #define NOOFGROUPS_MASK 0x00001000 511926deccbSFrançois Tigeot 51257e252bfSMichael Neumann #define MC_ARB_DRAM_TIMING 0x2774 51357e252bfSMichael Neumann #define MC_ARB_DRAM_TIMING2 0x2778 51457e252bfSMichael Neumann 51557e252bfSMichael Neumann #define MC_ARB_BURST_TIME 0x2808 51657e252bfSMichael Neumann #define STATE0(x) ((x) << 0) 51757e252bfSMichael Neumann #define STATE0_MASK (0x1f << 0) 51857e252bfSMichael Neumann #define STATE0_SHIFT 0 51957e252bfSMichael Neumann #define STATE1(x) ((x) << 5) 52057e252bfSMichael Neumann #define STATE1_MASK (0x1f << 5) 52157e252bfSMichael Neumann #define STATE1_SHIFT 5 52257e252bfSMichael Neumann #define STATE2(x) ((x) << 10) 52357e252bfSMichael Neumann #define STATE2_MASK (0x1f << 10) 52457e252bfSMichael Neumann #define STATE2_SHIFT 10 52557e252bfSMichael Neumann #define STATE3(x) ((x) << 15) 52657e252bfSMichael Neumann #define STATE3_MASK (0x1f << 15) 52757e252bfSMichael Neumann #define STATE3_SHIFT 15 52857e252bfSMichael Neumann 529c6f73aabSFrançois Tigeot #define MC_SEQ_TRAIN_WAKEUP_CNTL 0x28e8 530926deccbSFrançois Tigeot #define TRAIN_DONE_D0 (1 << 30) 531926deccbSFrançois Tigeot #define TRAIN_DONE_D1 (1 << 31) 532926deccbSFrançois Tigeot 533926deccbSFrançois Tigeot #define MC_SEQ_SUP_CNTL 0x28c8 534926deccbSFrançois Tigeot #define RUN_MASK (1 << 0) 535926deccbSFrançois Tigeot #define MC_SEQ_SUP_PGM 0x28cc 53657e252bfSMichael Neumann #define MC_PMG_AUTO_CMD 0x28d0 537926deccbSFrançois Tigeot 538926deccbSFrançois Tigeot #define MC_IO_PAD_CNTL_D0 0x29d0 539926deccbSFrançois Tigeot #define MEM_FALL_OUT_CMD (1 << 8) 540926deccbSFrançois Tigeot 54157e252bfSMichael Neumann #define MC_SEQ_RAS_TIMING 0x28a0 54257e252bfSMichael Neumann #define MC_SEQ_CAS_TIMING 0x28a4 54357e252bfSMichael Neumann #define MC_SEQ_MISC_TIMING 0x28a8 54457e252bfSMichael Neumann #define MC_SEQ_MISC_TIMING2 0x28ac 54557e252bfSMichael Neumann #define MC_SEQ_PMG_TIMING 0x28b0 54657e252bfSMichael Neumann #define MC_SEQ_RD_CTL_D0 0x28b4 54757e252bfSMichael Neumann #define MC_SEQ_RD_CTL_D1 0x28b8 54857e252bfSMichael Neumann #define MC_SEQ_WR_CTL_D0 0x28bc 54957e252bfSMichael Neumann #define MC_SEQ_WR_CTL_D1 0x28c0 55057e252bfSMichael Neumann 55157e252bfSMichael Neumann #define MC_SEQ_MISC0 0x2a00 55257e252bfSMichael Neumann #define MC_SEQ_MISC0_VEN_ID_SHIFT 8 55357e252bfSMichael Neumann #define MC_SEQ_MISC0_VEN_ID_MASK 0x00000f00 55457e252bfSMichael Neumann #define MC_SEQ_MISC0_VEN_ID_VALUE 3 55557e252bfSMichael Neumann #define MC_SEQ_MISC0_REV_ID_SHIFT 12 55657e252bfSMichael Neumann #define MC_SEQ_MISC0_REV_ID_MASK 0x0000f000 55757e252bfSMichael Neumann #define MC_SEQ_MISC0_REV_ID_VALUE 1 55857e252bfSMichael Neumann #define MC_SEQ_MISC0_GDDR5_SHIFT 28 55957e252bfSMichael Neumann #define MC_SEQ_MISC0_GDDR5_MASK 0xf0000000 56057e252bfSMichael Neumann #define MC_SEQ_MISC0_GDDR5_VALUE 5 56157e252bfSMichael Neumann #define MC_SEQ_MISC1 0x2a04 56257e252bfSMichael Neumann #define MC_SEQ_RESERVE_M 0x2a08 56357e252bfSMichael Neumann #define MC_PMG_CMD_EMRS 0x2a0c 56457e252bfSMichael Neumann 565926deccbSFrançois Tigeot #define MC_SEQ_IO_DEBUG_INDEX 0x2a44 566926deccbSFrançois Tigeot #define MC_SEQ_IO_DEBUG_DATA 0x2a48 567926deccbSFrançois Tigeot 56857e252bfSMichael Neumann #define MC_SEQ_MISC5 0x2a54 56957e252bfSMichael Neumann #define MC_SEQ_MISC6 0x2a58 57057e252bfSMichael Neumann 57157e252bfSMichael Neumann #define MC_SEQ_MISC7 0x2a64 57257e252bfSMichael Neumann 57357e252bfSMichael Neumann #define MC_SEQ_RAS_TIMING_LP 0x2a6c 57457e252bfSMichael Neumann #define MC_SEQ_CAS_TIMING_LP 0x2a70 57557e252bfSMichael Neumann #define MC_SEQ_MISC_TIMING_LP 0x2a74 57657e252bfSMichael Neumann #define MC_SEQ_MISC_TIMING2_LP 0x2a78 57757e252bfSMichael Neumann #define MC_SEQ_WR_CTL_D0_LP 0x2a7c 57857e252bfSMichael Neumann #define MC_SEQ_WR_CTL_D1_LP 0x2a80 57957e252bfSMichael Neumann #define MC_SEQ_PMG_CMD_EMRS_LP 0x2a84 58057e252bfSMichael Neumann #define MC_SEQ_PMG_CMD_MRS_LP 0x2a88 58157e252bfSMichael Neumann 58257e252bfSMichael Neumann #define MC_PMG_CMD_MRS 0x2aac 58357e252bfSMichael Neumann 58457e252bfSMichael Neumann #define MC_SEQ_RD_CTL_D0_LP 0x2b1c 58557e252bfSMichael Neumann #define MC_SEQ_RD_CTL_D1_LP 0x2b20 58657e252bfSMichael Neumann 58757e252bfSMichael Neumann #define MC_PMG_CMD_MRS1 0x2b44 58857e252bfSMichael Neumann #define MC_SEQ_PMG_CMD_MRS1_LP 0x2b48 58957e252bfSMichael Neumann #define MC_SEQ_PMG_TIMING_LP 0x2b4c 59057e252bfSMichael Neumann 59157e252bfSMichael Neumann #define MC_SEQ_WR_CTL_2 0x2b54 59257e252bfSMichael Neumann #define MC_SEQ_WR_CTL_2_LP 0x2b58 59357e252bfSMichael Neumann #define MC_PMG_CMD_MRS2 0x2b5c 59457e252bfSMichael Neumann #define MC_SEQ_PMG_CMD_MRS2_LP 0x2b60 59557e252bfSMichael Neumann 59657e252bfSMichael Neumann #define MCLK_PWRMGT_CNTL 0x2ba0 59757e252bfSMichael Neumann # define DLL_SPEED(x) ((x) << 0) 59857e252bfSMichael Neumann # define DLL_SPEED_MASK (0x1f << 0) 59957e252bfSMichael Neumann # define DLL_READY (1 << 6) 60057e252bfSMichael Neumann # define MC_INT_CNTL (1 << 7) 60157e252bfSMichael Neumann # define MRDCK0_PDNB (1 << 8) 60257e252bfSMichael Neumann # define MRDCK1_PDNB (1 << 9) 60357e252bfSMichael Neumann # define MRDCK0_RESET (1 << 16) 60457e252bfSMichael Neumann # define MRDCK1_RESET (1 << 17) 60557e252bfSMichael Neumann # define DLL_READY_READ (1 << 24) 60657e252bfSMichael Neumann #define DLL_CNTL 0x2ba4 60757e252bfSMichael Neumann # define MRDCK0_BYPASS (1 << 24) 60857e252bfSMichael Neumann # define MRDCK1_BYPASS (1 << 25) 60957e252bfSMichael Neumann 610c6f73aabSFrançois Tigeot #define MPLL_CNTL_MODE 0x2bb0 611c6f73aabSFrançois Tigeot # define MPLL_MCLK_SEL (1 << 11) 61257e252bfSMichael Neumann #define MPLL_FUNC_CNTL 0x2bb4 61357e252bfSMichael Neumann #define BWCTRL(x) ((x) << 20) 61457e252bfSMichael Neumann #define BWCTRL_MASK (0xff << 20) 61557e252bfSMichael Neumann #define MPLL_FUNC_CNTL_1 0x2bb8 61657e252bfSMichael Neumann #define VCO_MODE(x) ((x) << 0) 61757e252bfSMichael Neumann #define VCO_MODE_MASK (3 << 0) 61857e252bfSMichael Neumann #define CLKFRAC(x) ((x) << 4) 61957e252bfSMichael Neumann #define CLKFRAC_MASK (0xfff << 4) 62057e252bfSMichael Neumann #define CLKF(x) ((x) << 16) 62157e252bfSMichael Neumann #define CLKF_MASK (0xfff << 16) 62257e252bfSMichael Neumann #define MPLL_FUNC_CNTL_2 0x2bbc 62357e252bfSMichael Neumann #define MPLL_AD_FUNC_CNTL 0x2bc0 62457e252bfSMichael Neumann #define YCLK_POST_DIV(x) ((x) << 0) 62557e252bfSMichael Neumann #define YCLK_POST_DIV_MASK (7 << 0) 62657e252bfSMichael Neumann #define MPLL_DQ_FUNC_CNTL 0x2bc4 62757e252bfSMichael Neumann #define YCLK_SEL(x) ((x) << 4) 62857e252bfSMichael Neumann #define YCLK_SEL_MASK (1 << 4) 62957e252bfSMichael Neumann 63057e252bfSMichael Neumann #define MPLL_SS1 0x2bcc 63157e252bfSMichael Neumann #define CLKV(x) ((x) << 0) 63257e252bfSMichael Neumann #define CLKV_MASK (0x3ffffff << 0) 63357e252bfSMichael Neumann #define MPLL_SS2 0x2bd0 63457e252bfSMichael Neumann #define CLKS(x) ((x) << 0) 63557e252bfSMichael Neumann #define CLKS_MASK (0xfff << 0) 63657e252bfSMichael Neumann 637926deccbSFrançois Tigeot #define HDP_HOST_PATH_CNTL 0x2C00 6384cd92098Szrj #define CLOCK_GATING_DIS (1 << 23) 639926deccbSFrançois Tigeot #define HDP_NONSURFACE_BASE 0x2C04 640926deccbSFrançois Tigeot #define HDP_NONSURFACE_INFO 0x2C08 641926deccbSFrançois Tigeot #define HDP_NONSURFACE_SIZE 0x2C0C 642926deccbSFrançois Tigeot 643926deccbSFrançois Tigeot #define HDP_ADDR_CONFIG 0x2F48 644926deccbSFrançois Tigeot #define HDP_MISC_CNTL 0x2F4C 645926deccbSFrançois Tigeot #define HDP_FLUSH_INVALIDATE_CACHE (1 << 0) 6464cd92098Szrj #define HDP_MEM_POWER_LS 0x2F50 6474cd92098Szrj #define HDP_LS_ENABLE (1 << 0) 648926deccbSFrançois Tigeot 64957e252bfSMichael Neumann #define ATC_MISC_CG 0x3350 65057e252bfSMichael Neumann 651926deccbSFrançois Tigeot #define IH_RB_CNTL 0x3e00 652926deccbSFrançois Tigeot # define IH_RB_ENABLE (1 << 0) 653926deccbSFrançois Tigeot # define IH_IB_SIZE(x) ((x) << 1) /* log2 */ 654926deccbSFrançois Tigeot # define IH_RB_FULL_DRAIN_ENABLE (1 << 6) 655926deccbSFrançois Tigeot # define IH_WPTR_WRITEBACK_ENABLE (1 << 8) 656926deccbSFrançois Tigeot # define IH_WPTR_WRITEBACK_TIMER(x) ((x) << 9) /* log2 */ 657926deccbSFrançois Tigeot # define IH_WPTR_OVERFLOW_ENABLE (1 << 16) 658926deccbSFrançois Tigeot # define IH_WPTR_OVERFLOW_CLEAR (1 << 31) 659926deccbSFrançois Tigeot #define IH_RB_BASE 0x3e04 660926deccbSFrançois Tigeot #define IH_RB_RPTR 0x3e08 661926deccbSFrançois Tigeot #define IH_RB_WPTR 0x3e0c 662926deccbSFrançois Tigeot # define RB_OVERFLOW (1 << 0) 663926deccbSFrançois Tigeot # define WPTR_OFFSET_MASK 0x3fffc 664926deccbSFrançois Tigeot #define IH_RB_WPTR_ADDR_HI 0x3e10 665926deccbSFrançois Tigeot #define IH_RB_WPTR_ADDR_LO 0x3e14 666926deccbSFrançois Tigeot #define IH_CNTL 0x3e18 667926deccbSFrançois Tigeot # define ENABLE_INTR (1 << 0) 668926deccbSFrançois Tigeot # define IH_MC_SWAP(x) ((x) << 1) 669926deccbSFrançois Tigeot # define IH_MC_SWAP_NONE 0 670926deccbSFrançois Tigeot # define IH_MC_SWAP_16BIT 1 671926deccbSFrançois Tigeot # define IH_MC_SWAP_32BIT 2 672926deccbSFrançois Tigeot # define IH_MC_SWAP_64BIT 3 673926deccbSFrançois Tigeot # define RPTR_REARM (1 << 4) 674926deccbSFrançois Tigeot # define MC_WRREQ_CREDIT(x) ((x) << 15) 675926deccbSFrançois Tigeot # define MC_WR_CLEAN_CNT(x) ((x) << 20) 676926deccbSFrançois Tigeot # define MC_VMID(x) ((x) << 25) 677926deccbSFrançois Tigeot 678926deccbSFrançois Tigeot #define CONFIG_MEMSIZE 0x5428 679926deccbSFrançois Tigeot 680926deccbSFrançois Tigeot #define INTERRUPT_CNTL 0x5468 681926deccbSFrançois Tigeot # define IH_DUMMY_RD_OVERRIDE (1 << 0) 682926deccbSFrançois Tigeot # define IH_DUMMY_RD_EN (1 << 1) 683926deccbSFrançois Tigeot # define IH_REQ_NONSNOOP_EN (1 << 3) 684926deccbSFrançois Tigeot # define GEN_IH_INT_EN (1 << 8) 685926deccbSFrançois Tigeot #define INTERRUPT_CNTL2 0x546c 686926deccbSFrançois Tigeot 687926deccbSFrançois Tigeot #define HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480 688926deccbSFrançois Tigeot 689926deccbSFrançois Tigeot #define BIF_FB_EN 0x5490 690926deccbSFrançois Tigeot #define FB_READ_EN (1 << 0) 691926deccbSFrançois Tigeot #define FB_WRITE_EN (1 << 1) 692926deccbSFrançois Tigeot 693926deccbSFrançois Tigeot #define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 694926deccbSFrançois Tigeot 6954cd92098Szrj /* DCE6 ELD audio interface */ 6964cd92098Szrj #define AZ_F0_CODEC_ENDPOINT_INDEX 0x5E00 6974cd92098Szrj # define AZ_ENDPOINT_REG_INDEX(x) (((x) & 0xff) << 0) 6984cd92098Szrj # define AZ_ENDPOINT_REG_WRITE_EN (1 << 8) 6994cd92098Szrj #define AZ_F0_CODEC_ENDPOINT_DATA 0x5E04 7004cd92098Szrj 7014cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_CHANNEL_SPEAKER 0x25 7024cd92098Szrj #define SPEAKER_ALLOCATION(x) (((x) & 0x7f) << 0) 7034cd92098Szrj #define SPEAKER_ALLOCATION_MASK (0x7f << 0) 7044cd92098Szrj #define SPEAKER_ALLOCATION_SHIFT 0 7054cd92098Szrj #define HDMI_CONNECTION (1 << 16) 7064cd92098Szrj #define DP_CONNECTION (1 << 17) 7074cd92098Szrj 7084cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR0 0x28 /* LPCM */ 7094cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR1 0x29 /* AC3 */ 7104cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR2 0x2A /* MPEG1 */ 7114cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR3 0x2B /* MP3 */ 7124cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR4 0x2C /* MPEG2 */ 7134cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR5 0x2D /* AAC */ 7144cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR6 0x2E /* DTS */ 7154cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR7 0x2F /* ATRAC */ 7164cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR8 0x30 /* one bit audio - leave at 0 (default) */ 7174cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR9 0x31 /* Dolby Digital */ 7184cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR10 0x32 /* DTS-HD */ 7194cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR11 0x33 /* MAT-MLP */ 7204cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR12 0x34 /* DTS */ 7214cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_AUDIO_DESCRIPTOR13 0x35 /* WMA Pro */ 7224cd92098Szrj # define MAX_CHANNELS(x) (((x) & 0x7) << 0) 7234cd92098Szrj /* max channels minus one. 7 = 8 channels */ 7244cd92098Szrj # define SUPPORTED_FREQUENCIES(x) (((x) & 0xff) << 8) 7254cd92098Szrj # define DESCRIPTOR_BYTE_2(x) (((x) & 0xff) << 16) 7264cd92098Szrj # define SUPPORTED_FREQUENCIES_STEREO(x) (((x) & 0xff) << 24) /* LPCM only */ 7274cd92098Szrj /* SUPPORTED_FREQUENCIES, SUPPORTED_FREQUENCIES_STEREO 7284cd92098Szrj * bit0 = 32 kHz 7294cd92098Szrj * bit1 = 44.1 kHz 7304cd92098Szrj * bit2 = 48 kHz 7314cd92098Szrj * bit3 = 88.2 kHz 7324cd92098Szrj * bit4 = 96 kHz 7334cd92098Szrj * bit5 = 176.4 kHz 7344cd92098Szrj * bit6 = 192 kHz 7354cd92098Szrj */ 736c6f73aabSFrançois Tigeot 737c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_RESPONSE_LIPSYNC 0x37 738c6f73aabSFrançois Tigeot # define VIDEO_LIPSYNC(x) (((x) & 0xff) << 0) 739c6f73aabSFrançois Tigeot # define AUDIO_LIPSYNC(x) (((x) & 0xff) << 8) 740c6f73aabSFrançois Tigeot /* VIDEO_LIPSYNC, AUDIO_LIPSYNC 741c6f73aabSFrançois Tigeot * 0 = invalid 742c6f73aabSFrançois Tigeot * x = legal delay value 743c6f73aabSFrançois Tigeot * 255 = sync not supported 744c6f73aabSFrançois Tigeot */ 745c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_RESPONSE_HBR 0x38 746c6f73aabSFrançois Tigeot # define HBR_CAPABLE (1 << 0) /* enabled by default */ 747c6f73aabSFrançois Tigeot 748c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO0 0x3a 749c6f73aabSFrançois Tigeot # define MANUFACTURER_ID(x) (((x) & 0xffff) << 0) 750c6f73aabSFrançois Tigeot # define PRODUCT_ID(x) (((x) & 0xffff) << 16) 751c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO1 0x3b 752c6f73aabSFrançois Tigeot # define SINK_DESCRIPTION_LEN(x) (((x) & 0xff) << 0) 753c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO2 0x3c 754c6f73aabSFrançois Tigeot # define PORT_ID0(x) (((x) & 0xffffffff) << 0) 755c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO3 0x3d 756c6f73aabSFrançois Tigeot # define PORT_ID1(x) (((x) & 0xffffffff) << 0) 757c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO4 0x3e 758c6f73aabSFrançois Tigeot # define DESCRIPTION0(x) (((x) & 0xff) << 0) 759c6f73aabSFrançois Tigeot # define DESCRIPTION1(x) (((x) & 0xff) << 8) 760c6f73aabSFrançois Tigeot # define DESCRIPTION2(x) (((x) & 0xff) << 16) 761c6f73aabSFrançois Tigeot # define DESCRIPTION3(x) (((x) & 0xff) << 24) 762c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO5 0x3f 763c6f73aabSFrançois Tigeot # define DESCRIPTION4(x) (((x) & 0xff) << 0) 764c6f73aabSFrançois Tigeot # define DESCRIPTION5(x) (((x) & 0xff) << 8) 765c6f73aabSFrançois Tigeot # define DESCRIPTION6(x) (((x) & 0xff) << 16) 766c6f73aabSFrançois Tigeot # define DESCRIPTION7(x) (((x) & 0xff) << 24) 767c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO6 0x40 768c6f73aabSFrançois Tigeot # define DESCRIPTION8(x) (((x) & 0xff) << 0) 769c6f73aabSFrançois Tigeot # define DESCRIPTION9(x) (((x) & 0xff) << 8) 770c6f73aabSFrançois Tigeot # define DESCRIPTION10(x) (((x) & 0xff) << 16) 771c6f73aabSFrançois Tigeot # define DESCRIPTION11(x) (((x) & 0xff) << 24) 772c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO7 0x41 773c6f73aabSFrançois Tigeot # define DESCRIPTION12(x) (((x) & 0xff) << 0) 774c6f73aabSFrançois Tigeot # define DESCRIPTION13(x) (((x) & 0xff) << 8) 775c6f73aabSFrançois Tigeot # define DESCRIPTION14(x) (((x) & 0xff) << 16) 776c6f73aabSFrançois Tigeot # define DESCRIPTION15(x) (((x) & 0xff) << 24) 777c6f73aabSFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_SINK_INFO8 0x42 778c6f73aabSFrançois Tigeot # define DESCRIPTION16(x) (((x) & 0xff) << 0) 779c6f73aabSFrançois Tigeot # define DESCRIPTION17(x) (((x) & 0xff) << 8) 780c6f73aabSFrançois Tigeot 781591d5043SFrançois Tigeot #define AZ_F0_CODEC_PIN_CONTROL_HOT_PLUG_CONTROL 0x54 7824cd92098Szrj # define AUDIO_ENABLED (1 << 31) 7834cd92098Szrj 7844cd92098Szrj #define AZ_F0_CODEC_PIN_CONTROL_RESPONSE_CONFIGURATION_DEFAULT 0x56 7854cd92098Szrj #define PORT_CONNECTIVITY_MASK (3 << 30) 7864cd92098Szrj #define PORT_CONNECTIVITY_SHIFT 30 7874cd92098Szrj 788926deccbSFrançois Tigeot #define DC_LB_MEMORY_SPLIT 0x6b0c 789926deccbSFrançois Tigeot #define DC_LB_MEMORY_CONFIG(x) ((x) << 20) 790926deccbSFrançois Tigeot 791926deccbSFrançois Tigeot #define PRIORITY_A_CNT 0x6b18 792926deccbSFrançois Tigeot #define PRIORITY_MARK_MASK 0x7fff 793926deccbSFrançois Tigeot #define PRIORITY_OFF (1 << 16) 794926deccbSFrançois Tigeot #define PRIORITY_ALWAYS_ON (1 << 20) 795926deccbSFrançois Tigeot #define PRIORITY_B_CNT 0x6b1c 796926deccbSFrançois Tigeot 797926deccbSFrançois Tigeot #define DPG_PIPE_ARBITRATION_CONTROL3 0x6cc8 798926deccbSFrançois Tigeot # define LATENCY_WATERMARK_MASK(x) ((x) << 16) 799926deccbSFrançois Tigeot #define DPG_PIPE_LATENCY_CONTROL 0x6ccc 800926deccbSFrançois Tigeot # define LATENCY_LOW_WATERMARK(x) ((x) << 0) 801926deccbSFrançois Tigeot # define LATENCY_HIGH_WATERMARK(x) ((x) << 16) 802926deccbSFrançois Tigeot 803926deccbSFrançois Tigeot /* 0x6bb8, 0x77b8, 0x103b8, 0x10fb8, 0x11bb8, 0x127b8 */ 804926deccbSFrançois Tigeot #define VLINE_STATUS 0x6bb8 805926deccbSFrançois Tigeot # define VLINE_OCCURRED (1 << 0) 806926deccbSFrançois Tigeot # define VLINE_ACK (1 << 4) 807926deccbSFrançois Tigeot # define VLINE_STAT (1 << 12) 808926deccbSFrançois Tigeot # define VLINE_INTERRUPT (1 << 16) 809926deccbSFrançois Tigeot # define VLINE_INTERRUPT_TYPE (1 << 17) 810926deccbSFrançois Tigeot /* 0x6bbc, 0x77bc, 0x103bc, 0x10fbc, 0x11bbc, 0x127bc */ 811926deccbSFrançois Tigeot #define VBLANK_STATUS 0x6bbc 812926deccbSFrançois Tigeot # define VBLANK_OCCURRED (1 << 0) 813926deccbSFrançois Tigeot # define VBLANK_ACK (1 << 4) 814926deccbSFrançois Tigeot # define VBLANK_STAT (1 << 12) 815926deccbSFrançois Tigeot # define VBLANK_INTERRUPT (1 << 16) 816926deccbSFrançois Tigeot # define VBLANK_INTERRUPT_TYPE (1 << 17) 817926deccbSFrançois Tigeot 818926deccbSFrançois Tigeot /* 0x6b40, 0x7740, 0x10340, 0x10f40, 0x11b40, 0x12740 */ 819926deccbSFrançois Tigeot #define INT_MASK 0x6b40 820926deccbSFrançois Tigeot # define VBLANK_INT_MASK (1 << 0) 821926deccbSFrançois Tigeot # define VLINE_INT_MASK (1 << 4) 822926deccbSFrançois Tigeot 823926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS 0x60f4 824926deccbSFrançois Tigeot # define LB_D1_VLINE_INTERRUPT (1 << 2) 825926deccbSFrançois Tigeot # define LB_D1_VBLANK_INTERRUPT (1 << 3) 826926deccbSFrançois Tigeot # define DC_HPD1_INTERRUPT (1 << 17) 827926deccbSFrançois Tigeot # define DC_HPD1_RX_INTERRUPT (1 << 18) 828926deccbSFrançois Tigeot # define DACA_AUTODETECT_INTERRUPT (1 << 22) 829926deccbSFrançois Tigeot # define DACB_AUTODETECT_INTERRUPT (1 << 23) 830926deccbSFrançois Tigeot # define DC_I2C_SW_DONE_INTERRUPT (1 << 24) 831926deccbSFrançois Tigeot # define DC_I2C_HW_DONE_INTERRUPT (1 << 25) 832926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS_CONTINUE 0x60f8 833926deccbSFrançois Tigeot # define LB_D2_VLINE_INTERRUPT (1 << 2) 834926deccbSFrançois Tigeot # define LB_D2_VBLANK_INTERRUPT (1 << 3) 835926deccbSFrançois Tigeot # define DC_HPD2_INTERRUPT (1 << 17) 836926deccbSFrançois Tigeot # define DC_HPD2_RX_INTERRUPT (1 << 18) 837926deccbSFrançois Tigeot # define DISP_TIMER_INTERRUPT (1 << 24) 838926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS_CONTINUE2 0x60fc 839926deccbSFrançois Tigeot # define LB_D3_VLINE_INTERRUPT (1 << 2) 840926deccbSFrançois Tigeot # define LB_D3_VBLANK_INTERRUPT (1 << 3) 841926deccbSFrançois Tigeot # define DC_HPD3_INTERRUPT (1 << 17) 842926deccbSFrançois Tigeot # define DC_HPD3_RX_INTERRUPT (1 << 18) 843926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS_CONTINUE3 0x6100 844926deccbSFrançois Tigeot # define LB_D4_VLINE_INTERRUPT (1 << 2) 845926deccbSFrançois Tigeot # define LB_D4_VBLANK_INTERRUPT (1 << 3) 846926deccbSFrançois Tigeot # define DC_HPD4_INTERRUPT (1 << 17) 847926deccbSFrançois Tigeot # define DC_HPD4_RX_INTERRUPT (1 << 18) 848926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS_CONTINUE4 0x614c 849926deccbSFrançois Tigeot # define LB_D5_VLINE_INTERRUPT (1 << 2) 850926deccbSFrançois Tigeot # define LB_D5_VBLANK_INTERRUPT (1 << 3) 851926deccbSFrançois Tigeot # define DC_HPD5_INTERRUPT (1 << 17) 852926deccbSFrançois Tigeot # define DC_HPD5_RX_INTERRUPT (1 << 18) 853926deccbSFrançois Tigeot #define DISP_INTERRUPT_STATUS_CONTINUE5 0x6150 854926deccbSFrançois Tigeot # define LB_D6_VLINE_INTERRUPT (1 << 2) 855926deccbSFrançois Tigeot # define LB_D6_VBLANK_INTERRUPT (1 << 3) 856926deccbSFrançois Tigeot # define DC_HPD6_INTERRUPT (1 << 17) 857926deccbSFrançois Tigeot # define DC_HPD6_RX_INTERRUPT (1 << 18) 858926deccbSFrançois Tigeot 859926deccbSFrançois Tigeot /* 0x6858, 0x7458, 0x10058, 0x10c58, 0x11858, 0x12458 */ 860926deccbSFrançois Tigeot #define GRPH_INT_STATUS 0x6858 861926deccbSFrançois Tigeot # define GRPH_PFLIP_INT_OCCURRED (1 << 0) 862926deccbSFrançois Tigeot # define GRPH_PFLIP_INT_CLEAR (1 << 8) 863926deccbSFrançois Tigeot /* 0x685c, 0x745c, 0x1005c, 0x10c5c, 0x1185c, 0x1245c */ 864926deccbSFrançois Tigeot #define GRPH_INT_CONTROL 0x685c 865926deccbSFrançois Tigeot # define GRPH_PFLIP_INT_MASK (1 << 0) 866926deccbSFrançois Tigeot # define GRPH_PFLIP_INT_TYPE (1 << 8) 867926deccbSFrançois Tigeot 868c6f73aabSFrançois Tigeot #define DAC_AUTODETECT_INT_CONTROL 0x67c8 869926deccbSFrançois Tigeot 870926deccbSFrançois Tigeot #define DC_HPD1_INT_STATUS 0x601c 871926deccbSFrançois Tigeot #define DC_HPD2_INT_STATUS 0x6028 872926deccbSFrançois Tigeot #define DC_HPD3_INT_STATUS 0x6034 873926deccbSFrançois Tigeot #define DC_HPD4_INT_STATUS 0x6040 874926deccbSFrançois Tigeot #define DC_HPD5_INT_STATUS 0x604c 875926deccbSFrançois Tigeot #define DC_HPD6_INT_STATUS 0x6058 876926deccbSFrançois Tigeot # define DC_HPDx_INT_STATUS (1 << 0) 877926deccbSFrançois Tigeot # define DC_HPDx_SENSE (1 << 1) 878926deccbSFrançois Tigeot # define DC_HPDx_RX_INT_STATUS (1 << 8) 879926deccbSFrançois Tigeot 880926deccbSFrançois Tigeot #define DC_HPD1_INT_CONTROL 0x6020 881926deccbSFrançois Tigeot #define DC_HPD2_INT_CONTROL 0x602c 882926deccbSFrançois Tigeot #define DC_HPD3_INT_CONTROL 0x6038 883926deccbSFrançois Tigeot #define DC_HPD4_INT_CONTROL 0x6044 884926deccbSFrançois Tigeot #define DC_HPD5_INT_CONTROL 0x6050 885926deccbSFrançois Tigeot #define DC_HPD6_INT_CONTROL 0x605c 886926deccbSFrançois Tigeot # define DC_HPDx_INT_ACK (1 << 0) 887926deccbSFrançois Tigeot # define DC_HPDx_INT_POLARITY (1 << 8) 888926deccbSFrançois Tigeot # define DC_HPDx_INT_EN (1 << 16) 889926deccbSFrançois Tigeot # define DC_HPDx_RX_INT_ACK (1 << 20) 890926deccbSFrançois Tigeot # define DC_HPDx_RX_INT_EN (1 << 24) 891926deccbSFrançois Tigeot 892926deccbSFrançois Tigeot #define DC_HPD1_CONTROL 0x6024 893926deccbSFrançois Tigeot #define DC_HPD2_CONTROL 0x6030 894926deccbSFrançois Tigeot #define DC_HPD3_CONTROL 0x603c 895926deccbSFrançois Tigeot #define DC_HPD4_CONTROL 0x6048 896926deccbSFrançois Tigeot #define DC_HPD5_CONTROL 0x6054 897926deccbSFrançois Tigeot #define DC_HPD6_CONTROL 0x6060 898926deccbSFrançois Tigeot # define DC_HPDx_CONNECTION_TIMER(x) ((x) << 0) 899926deccbSFrançois Tigeot # define DC_HPDx_RX_INT_TIMER(x) ((x) << 16) 900926deccbSFrançois Tigeot # define DC_HPDx_EN (1 << 28) 901926deccbSFrançois Tigeot 90257e252bfSMichael Neumann #define DPG_PIPE_STUTTER_CONTROL 0x6cd4 90357e252bfSMichael Neumann # define STUTTER_ENABLE (1 << 0) 90457e252bfSMichael Neumann 905926deccbSFrançois Tigeot /* 0x6e98, 0x7a98, 0x10698, 0x11298, 0x11e98, 0x12a98 */ 906926deccbSFrançois Tigeot #define CRTC_STATUS_FRAME_COUNT 0x6e98 907926deccbSFrançois Tigeot 908c59a5c48SFrançois Tigeot /* Audio clocks */ 909c59a5c48SFrançois Tigeot #define DCCG_AUDIO_DTO_SOURCE 0x05ac 910c59a5c48SFrançois Tigeot # define DCCG_AUDIO_DTO0_SOURCE_SEL(x) ((x) << 0) /* crtc0 - crtc5 */ 911c59a5c48SFrançois Tigeot # define DCCG_AUDIO_DTO_SEL (1 << 4) /* 0=dto0 1=dto1 */ 912c59a5c48SFrançois Tigeot 913c59a5c48SFrançois Tigeot #define DCCG_AUDIO_DTO0_PHASE 0x05b0 914c59a5c48SFrançois Tigeot #define DCCG_AUDIO_DTO0_MODULE 0x05b4 915c59a5c48SFrançois Tigeot #define DCCG_AUDIO_DTO1_PHASE 0x05c0 916c59a5c48SFrançois Tigeot #define DCCG_AUDIO_DTO1_MODULE 0x05c4 917c59a5c48SFrançois Tigeot 918c59a5c48SFrançois Tigeot #define DENTIST_DISPCLK_CNTL 0x0490 919c59a5c48SFrançois Tigeot # define DENTIST_DPREFCLK_WDIVIDER(x) (((x) & 0x7f) << 24) 920c59a5c48SFrançois Tigeot # define DENTIST_DPREFCLK_WDIVIDER_MASK (0x7f << 24) 921c59a5c48SFrançois Tigeot # define DENTIST_DPREFCLK_WDIVIDER_SHIFT 24 922c59a5c48SFrançois Tigeot 9234cd92098Szrj #define AFMT_AUDIO_SRC_CONTROL 0x713c 9244cd92098Szrj #define AFMT_AUDIO_SRC_SELECT(x) (((x) & 7) << 0) 9254cd92098Szrj /* AFMT_AUDIO_SRC_SELECT 9264cd92098Szrj * 0 = stream0 9274cd92098Szrj * 1 = stream1 9284cd92098Szrj * 2 = stream2 9294cd92098Szrj * 3 = stream3 9304cd92098Szrj * 4 = stream4 9314cd92098Szrj * 5 = stream5 9324cd92098Szrj */ 9334cd92098Szrj 934926deccbSFrançois Tigeot #define GRBM_CNTL 0x8000 935926deccbSFrançois Tigeot #define GRBM_READ_TIMEOUT(x) ((x) << 0) 936926deccbSFrançois Tigeot 937926deccbSFrançois Tigeot #define GRBM_STATUS2 0x8008 938926deccbSFrançois Tigeot #define RLC_RQ_PENDING (1 << 0) 939926deccbSFrançois Tigeot #define RLC_BUSY (1 << 8) 940926deccbSFrançois Tigeot #define TC_BUSY (1 << 9) 941926deccbSFrançois Tigeot 942926deccbSFrançois Tigeot #define GRBM_STATUS 0x8010 943926deccbSFrançois Tigeot #define CMDFIFO_AVAIL_MASK 0x0000000F 944926deccbSFrançois Tigeot #define RING2_RQ_PENDING (1 << 4) 945926deccbSFrançois Tigeot #define SRBM_RQ_PENDING (1 << 5) 946926deccbSFrançois Tigeot #define RING1_RQ_PENDING (1 << 6) 947926deccbSFrançois Tigeot #define CF_RQ_PENDING (1 << 7) 948926deccbSFrançois Tigeot #define PF_RQ_PENDING (1 << 8) 949926deccbSFrançois Tigeot #define GDS_DMA_RQ_PENDING (1 << 9) 950926deccbSFrançois Tigeot #define GRBM_EE_BUSY (1 << 10) 951926deccbSFrançois Tigeot #define DB_CLEAN (1 << 12) 952926deccbSFrançois Tigeot #define CB_CLEAN (1 << 13) 953926deccbSFrançois Tigeot #define TA_BUSY (1 << 14) 954926deccbSFrançois Tigeot #define GDS_BUSY (1 << 15) 955926deccbSFrançois Tigeot #define VGT_BUSY (1 << 17) 956926deccbSFrançois Tigeot #define IA_BUSY_NO_DMA (1 << 18) 957926deccbSFrançois Tigeot #define IA_BUSY (1 << 19) 958926deccbSFrançois Tigeot #define SX_BUSY (1 << 20) 959926deccbSFrançois Tigeot #define SPI_BUSY (1 << 22) 960926deccbSFrançois Tigeot #define BCI_BUSY (1 << 23) 961926deccbSFrançois Tigeot #define SC_BUSY (1 << 24) 962926deccbSFrançois Tigeot #define PA_BUSY (1 << 25) 963926deccbSFrançois Tigeot #define DB_BUSY (1 << 26) 964926deccbSFrançois Tigeot #define CP_COHERENCY_BUSY (1 << 28) 965926deccbSFrançois Tigeot #define CP_BUSY (1 << 29) 966926deccbSFrançois Tigeot #define CB_BUSY (1 << 30) 967926deccbSFrançois Tigeot #define GUI_ACTIVE (1 << 31) 968926deccbSFrançois Tigeot #define GRBM_STATUS_SE0 0x8014 969926deccbSFrançois Tigeot #define GRBM_STATUS_SE1 0x8018 970926deccbSFrançois Tigeot #define SE_DB_CLEAN (1 << 1) 971926deccbSFrançois Tigeot #define SE_CB_CLEAN (1 << 2) 972926deccbSFrançois Tigeot #define SE_BCI_BUSY (1 << 22) 973926deccbSFrançois Tigeot #define SE_VGT_BUSY (1 << 23) 974926deccbSFrançois Tigeot #define SE_PA_BUSY (1 << 24) 975926deccbSFrançois Tigeot #define SE_TA_BUSY (1 << 25) 976926deccbSFrançois Tigeot #define SE_SX_BUSY (1 << 26) 977926deccbSFrançois Tigeot #define SE_SPI_BUSY (1 << 27) 978926deccbSFrançois Tigeot #define SE_SC_BUSY (1 << 29) 979926deccbSFrançois Tigeot #define SE_DB_BUSY (1 << 30) 980926deccbSFrançois Tigeot #define SE_CB_BUSY (1 << 31) 981926deccbSFrançois Tigeot 982926deccbSFrançois Tigeot #define GRBM_SOFT_RESET 0x8020 983926deccbSFrançois Tigeot #define SOFT_RESET_CP (1 << 0) 984926deccbSFrançois Tigeot #define SOFT_RESET_CB (1 << 1) 985926deccbSFrançois Tigeot #define SOFT_RESET_RLC (1 << 2) 986926deccbSFrançois Tigeot #define SOFT_RESET_DB (1 << 3) 987926deccbSFrançois Tigeot #define SOFT_RESET_GDS (1 << 4) 988926deccbSFrançois Tigeot #define SOFT_RESET_PA (1 << 5) 989926deccbSFrançois Tigeot #define SOFT_RESET_SC (1 << 6) 990926deccbSFrançois Tigeot #define SOFT_RESET_BCI (1 << 7) 991926deccbSFrançois Tigeot #define SOFT_RESET_SPI (1 << 8) 992926deccbSFrançois Tigeot #define SOFT_RESET_SX (1 << 10) 993926deccbSFrançois Tigeot #define SOFT_RESET_TC (1 << 11) 994926deccbSFrançois Tigeot #define SOFT_RESET_TA (1 << 12) 995926deccbSFrançois Tigeot #define SOFT_RESET_VGT (1 << 14) 996926deccbSFrançois Tigeot #define SOFT_RESET_IA (1 << 15) 997926deccbSFrançois Tigeot 998926deccbSFrançois Tigeot #define GRBM_GFX_INDEX 0x802C 999926deccbSFrançois Tigeot #define INSTANCE_INDEX(x) ((x) << 0) 1000926deccbSFrançois Tigeot #define SH_INDEX(x) ((x) << 8) 1001926deccbSFrançois Tigeot #define SE_INDEX(x) ((x) << 16) 1002926deccbSFrançois Tigeot #define SH_BROADCAST_WRITES (1 << 29) 1003926deccbSFrançois Tigeot #define INSTANCE_BROADCAST_WRITES (1 << 30) 1004926deccbSFrançois Tigeot #define SE_BROADCAST_WRITES (1 << 31) 1005926deccbSFrançois Tigeot 1006926deccbSFrançois Tigeot #define GRBM_INT_CNTL 0x8060 1007926deccbSFrançois Tigeot # define RDERR_INT_ENABLE (1 << 0) 1008926deccbSFrançois Tigeot # define GUI_IDLE_INT_ENABLE (1 << 19) 1009926deccbSFrançois Tigeot 1010926deccbSFrançois Tigeot #define CP_STRMOUT_CNTL 0x84FC 1011926deccbSFrançois Tigeot #define SCRATCH_REG0 0x8500 1012926deccbSFrançois Tigeot #define SCRATCH_REG1 0x8504 1013926deccbSFrançois Tigeot #define SCRATCH_REG2 0x8508 1014926deccbSFrançois Tigeot #define SCRATCH_REG3 0x850C 1015926deccbSFrançois Tigeot #define SCRATCH_REG4 0x8510 1016926deccbSFrançois Tigeot #define SCRATCH_REG5 0x8514 1017926deccbSFrançois Tigeot #define SCRATCH_REG6 0x8518 1018926deccbSFrançois Tigeot #define SCRATCH_REG7 0x851C 1019926deccbSFrançois Tigeot 1020926deccbSFrançois Tigeot #define SCRATCH_UMSK 0x8540 1021926deccbSFrançois Tigeot #define SCRATCH_ADDR 0x8544 1022926deccbSFrançois Tigeot 1023926deccbSFrançois Tigeot #define CP_SEM_WAIT_TIMER 0x85BC 1024926deccbSFrançois Tigeot 1025926deccbSFrançois Tigeot #define CP_SEM_INCOMPLETE_TIMER_CNTL 0x85C8 1026926deccbSFrançois Tigeot 1027926deccbSFrançois Tigeot #define CP_ME_CNTL 0x86D8 1028926deccbSFrançois Tigeot #define CP_CE_HALT (1 << 24) 1029926deccbSFrançois Tigeot #define CP_PFP_HALT (1 << 26) 1030926deccbSFrançois Tigeot #define CP_ME_HALT (1 << 28) 1031926deccbSFrançois Tigeot 1032926deccbSFrançois Tigeot #define CP_COHER_CNTL2 0x85E8 1033926deccbSFrançois Tigeot 1034926deccbSFrançois Tigeot #define CP_RB2_RPTR 0x86f8 1035926deccbSFrançois Tigeot #define CP_RB1_RPTR 0x86fc 1036926deccbSFrançois Tigeot #define CP_RB0_RPTR 0x8700 1037926deccbSFrançois Tigeot #define CP_RB_WPTR_DELAY 0x8704 1038926deccbSFrançois Tigeot 1039926deccbSFrançois Tigeot #define CP_QUEUE_THRESHOLDS 0x8760 1040926deccbSFrançois Tigeot #define ROQ_IB1_START(x) ((x) << 0) 1041926deccbSFrançois Tigeot #define ROQ_IB2_START(x) ((x) << 8) 1042926deccbSFrançois Tigeot #define CP_MEQ_THRESHOLDS 0x8764 1043926deccbSFrançois Tigeot #define MEQ1_START(x) ((x) << 0) 1044926deccbSFrançois Tigeot #define MEQ2_START(x) ((x) << 8) 1045926deccbSFrançois Tigeot 1046926deccbSFrançois Tigeot #define CP_PERFMON_CNTL 0x87FC 1047926deccbSFrançois Tigeot 1048926deccbSFrançois Tigeot #define VGT_VTX_VECT_EJECT_REG 0x88B0 1049926deccbSFrançois Tigeot 1050926deccbSFrançois Tigeot #define VGT_CACHE_INVALIDATION 0x88C4 1051926deccbSFrançois Tigeot #define CACHE_INVALIDATION(x) ((x) << 0) 1052926deccbSFrançois Tigeot #define VC_ONLY 0 1053926deccbSFrançois Tigeot #define TC_ONLY 1 1054926deccbSFrançois Tigeot #define VC_AND_TC 2 1055926deccbSFrançois Tigeot #define AUTO_INVLD_EN(x) ((x) << 6) 1056926deccbSFrançois Tigeot #define NO_AUTO 0 1057926deccbSFrançois Tigeot #define ES_AUTO 1 1058926deccbSFrançois Tigeot #define GS_AUTO 2 1059926deccbSFrançois Tigeot #define ES_AND_GS_AUTO 3 1060926deccbSFrançois Tigeot #define VGT_ESGS_RING_SIZE 0x88C8 1061926deccbSFrançois Tigeot #define VGT_GSVS_RING_SIZE 0x88CC 1062926deccbSFrançois Tigeot 1063926deccbSFrançois Tigeot #define VGT_GS_VERTEX_REUSE 0x88D4 1064926deccbSFrançois Tigeot 1065926deccbSFrançois Tigeot #define VGT_PRIMITIVE_TYPE 0x8958 1066926deccbSFrançois Tigeot #define VGT_INDEX_TYPE 0x895C 1067926deccbSFrançois Tigeot 1068926deccbSFrançois Tigeot #define VGT_NUM_INDICES 0x8970 1069926deccbSFrançois Tigeot #define VGT_NUM_INSTANCES 0x8974 1070926deccbSFrançois Tigeot 1071926deccbSFrançois Tigeot #define VGT_TF_RING_SIZE 0x8988 1072926deccbSFrançois Tigeot 1073926deccbSFrançois Tigeot #define VGT_HS_OFFCHIP_PARAM 0x89B0 1074926deccbSFrançois Tigeot 1075926deccbSFrançois Tigeot #define VGT_TF_MEMORY_BASE 0x89B8 1076926deccbSFrançois Tigeot 1077926deccbSFrançois Tigeot #define CC_GC_SHADER_ARRAY_CONFIG 0x89bc 1078926deccbSFrançois Tigeot #define INACTIVE_CUS_MASK 0xFFFF0000 1079926deccbSFrançois Tigeot #define INACTIVE_CUS_SHIFT 16 1080926deccbSFrançois Tigeot #define GC_USER_SHADER_ARRAY_CONFIG 0x89c0 1081926deccbSFrançois Tigeot 1082926deccbSFrançois Tigeot #define PA_CL_ENHANCE 0x8A14 1083926deccbSFrançois Tigeot #define CLIP_VTX_REORDER_ENA (1 << 0) 1084926deccbSFrançois Tigeot #define NUM_CLIP_SEQ(x) ((x) << 1) 1085926deccbSFrançois Tigeot 1086926deccbSFrançois Tigeot #define PA_SU_LINE_STIPPLE_VALUE 0x8A60 1087926deccbSFrançois Tigeot 1088926deccbSFrançois Tigeot #define PA_SC_LINE_STIPPLE_STATE 0x8B10 1089926deccbSFrançois Tigeot 1090926deccbSFrançois Tigeot #define PA_SC_FORCE_EOV_MAX_CNTS 0x8B24 1091926deccbSFrançois Tigeot #define FORCE_EOV_MAX_CLK_CNT(x) ((x) << 0) 1092926deccbSFrançois Tigeot #define FORCE_EOV_MAX_REZ_CNT(x) ((x) << 16) 1093926deccbSFrançois Tigeot 1094926deccbSFrançois Tigeot #define PA_SC_FIFO_SIZE 0x8BCC 1095926deccbSFrançois Tigeot #define SC_FRONTEND_PRIM_FIFO_SIZE(x) ((x) << 0) 1096926deccbSFrançois Tigeot #define SC_BACKEND_PRIM_FIFO_SIZE(x) ((x) << 6) 1097926deccbSFrançois Tigeot #define SC_HIZ_TILE_FIFO_SIZE(x) ((x) << 15) 1098926deccbSFrançois Tigeot #define SC_EARLYZ_TILE_FIFO_SIZE(x) ((x) << 23) 1099926deccbSFrançois Tigeot 1100926deccbSFrançois Tigeot #define PA_SC_ENHANCE 0x8BF0 1101926deccbSFrançois Tigeot 1102926deccbSFrançois Tigeot #define SQ_CONFIG 0x8C00 1103926deccbSFrançois Tigeot 1104926deccbSFrançois Tigeot #define SQC_CACHES 0x8C08 1105926deccbSFrançois Tigeot 110657e252bfSMichael Neumann #define SQ_POWER_THROTTLE 0x8e58 110757e252bfSMichael Neumann #define MIN_POWER(x) ((x) << 0) 110857e252bfSMichael Neumann #define MIN_POWER_MASK (0x3fff << 0) 110957e252bfSMichael Neumann #define MIN_POWER_SHIFT 0 111057e252bfSMichael Neumann #define MAX_POWER(x) ((x) << 16) 111157e252bfSMichael Neumann #define MAX_POWER_MASK (0x3fff << 16) 111257e252bfSMichael Neumann #define MAX_POWER_SHIFT 0 111357e252bfSMichael Neumann #define SQ_POWER_THROTTLE2 0x8e5c 111457e252bfSMichael Neumann #define MAX_POWER_DELTA(x) ((x) << 0) 111557e252bfSMichael Neumann #define MAX_POWER_DELTA_MASK (0x3fff << 0) 111657e252bfSMichael Neumann #define MAX_POWER_DELTA_SHIFT 0 111757e252bfSMichael Neumann #define STI_SIZE(x) ((x) << 16) 111857e252bfSMichael Neumann #define STI_SIZE_MASK (0x3ff << 16) 111957e252bfSMichael Neumann #define STI_SIZE_SHIFT 16 112057e252bfSMichael Neumann #define LTI_RATIO(x) ((x) << 27) 112157e252bfSMichael Neumann #define LTI_RATIO_MASK (0xf << 27) 112257e252bfSMichael Neumann #define LTI_RATIO_SHIFT 27 112357e252bfSMichael Neumann 1124926deccbSFrançois Tigeot #define SX_DEBUG_1 0x9060 1125926deccbSFrançois Tigeot 1126926deccbSFrançois Tigeot #define SPI_STATIC_THREAD_MGMT_1 0x90E0 1127926deccbSFrançois Tigeot #define SPI_STATIC_THREAD_MGMT_2 0x90E4 1128926deccbSFrançois Tigeot #define SPI_STATIC_THREAD_MGMT_3 0x90E8 1129926deccbSFrançois Tigeot #define SPI_PS_MAX_WAVE_ID 0x90EC 1130926deccbSFrançois Tigeot 1131926deccbSFrançois Tigeot #define SPI_CONFIG_CNTL 0x9100 1132926deccbSFrançois Tigeot 1133926deccbSFrançois Tigeot #define SPI_CONFIG_CNTL_1 0x913C 1134926deccbSFrançois Tigeot #define VTX_DONE_DELAY(x) ((x) << 0) 1135926deccbSFrançois Tigeot #define INTERP_ONE_PRIM_PER_ROW (1 << 4) 1136926deccbSFrançois Tigeot 1137926deccbSFrançois Tigeot #define CGTS_TCC_DISABLE 0x9148 1138926deccbSFrançois Tigeot #define CGTS_USER_TCC_DISABLE 0x914C 1139926deccbSFrançois Tigeot #define TCC_DISABLE_MASK 0xFFFF0000 1140926deccbSFrançois Tigeot #define TCC_DISABLE_SHIFT 16 114157e252bfSMichael Neumann #define CGTS_SM_CTRL_REG 0x9150 114257e252bfSMichael Neumann #define OVERRIDE (1 << 21) 114357e252bfSMichael Neumann #define LS_OVERRIDE (1 << 22) 114457e252bfSMichael Neumann 114557e252bfSMichael Neumann #define SPI_LB_CU_MASK 0x9354 1146926deccbSFrançois Tigeot 1147926deccbSFrançois Tigeot #define TA_CNTL_AUX 0x9508 1148*1dedbd3bSFrançois Tigeot #define TA_CS_BC_BASE_ADDR 0x950C 1149926deccbSFrançois Tigeot 1150926deccbSFrançois Tigeot #define CC_RB_BACKEND_DISABLE 0x98F4 1151926deccbSFrançois Tigeot #define BACKEND_DISABLE(x) ((x) << 16) 1152926deccbSFrançois Tigeot #define GB_ADDR_CONFIG 0x98F8 1153926deccbSFrançois Tigeot #define NUM_PIPES(x) ((x) << 0) 1154926deccbSFrançois Tigeot #define NUM_PIPES_MASK 0x00000007 1155926deccbSFrançois Tigeot #define NUM_PIPES_SHIFT 0 1156926deccbSFrançois Tigeot #define PIPE_INTERLEAVE_SIZE(x) ((x) << 4) 1157926deccbSFrançois Tigeot #define PIPE_INTERLEAVE_SIZE_MASK 0x00000070 1158926deccbSFrançois Tigeot #define PIPE_INTERLEAVE_SIZE_SHIFT 4 1159926deccbSFrançois Tigeot #define NUM_SHADER_ENGINES(x) ((x) << 12) 1160926deccbSFrançois Tigeot #define NUM_SHADER_ENGINES_MASK 0x00003000 1161926deccbSFrançois Tigeot #define NUM_SHADER_ENGINES_SHIFT 12 1162926deccbSFrançois Tigeot #define SHADER_ENGINE_TILE_SIZE(x) ((x) << 16) 1163926deccbSFrançois Tigeot #define SHADER_ENGINE_TILE_SIZE_MASK 0x00070000 1164926deccbSFrançois Tigeot #define SHADER_ENGINE_TILE_SIZE_SHIFT 16 1165926deccbSFrançois Tigeot #define NUM_GPUS(x) ((x) << 20) 1166926deccbSFrançois Tigeot #define NUM_GPUS_MASK 0x00700000 1167926deccbSFrançois Tigeot #define NUM_GPUS_SHIFT 20 1168926deccbSFrançois Tigeot #define MULTI_GPU_TILE_SIZE(x) ((x) << 24) 1169926deccbSFrançois Tigeot #define MULTI_GPU_TILE_SIZE_MASK 0x03000000 1170926deccbSFrançois Tigeot #define MULTI_GPU_TILE_SIZE_SHIFT 24 1171926deccbSFrançois Tigeot #define ROW_SIZE(x) ((x) << 28) 1172926deccbSFrançois Tigeot #define ROW_SIZE_MASK 0x30000000 1173926deccbSFrançois Tigeot #define ROW_SIZE_SHIFT 28 1174926deccbSFrançois Tigeot 1175926deccbSFrançois Tigeot #define GB_TILE_MODE0 0x9910 1176926deccbSFrançois Tigeot # define MICRO_TILE_MODE(x) ((x) << 0) 1177926deccbSFrançois Tigeot # define ADDR_SURF_DISPLAY_MICRO_TILING 0 1178926deccbSFrançois Tigeot # define ADDR_SURF_THIN_MICRO_TILING 1 1179926deccbSFrançois Tigeot # define ADDR_SURF_DEPTH_MICRO_TILING 2 1180926deccbSFrançois Tigeot # define ARRAY_MODE(x) ((x) << 2) 1181926deccbSFrançois Tigeot # define ARRAY_LINEAR_GENERAL 0 1182926deccbSFrançois Tigeot # define ARRAY_LINEAR_ALIGNED 1 1183926deccbSFrançois Tigeot # define ARRAY_1D_TILED_THIN1 2 1184926deccbSFrançois Tigeot # define ARRAY_2D_TILED_THIN1 4 1185926deccbSFrançois Tigeot # define PIPE_CONFIG(x) ((x) << 6) 1186926deccbSFrançois Tigeot # define ADDR_SURF_P2 0 1187926deccbSFrançois Tigeot # define ADDR_SURF_P4_8x16 4 1188926deccbSFrançois Tigeot # define ADDR_SURF_P4_16x16 5 1189926deccbSFrançois Tigeot # define ADDR_SURF_P4_16x32 6 1190926deccbSFrançois Tigeot # define ADDR_SURF_P4_32x32 7 1191926deccbSFrançois Tigeot # define ADDR_SURF_P8_16x16_8x16 8 1192926deccbSFrançois Tigeot # define ADDR_SURF_P8_16x32_8x16 9 1193926deccbSFrançois Tigeot # define ADDR_SURF_P8_32x32_8x16 10 1194926deccbSFrançois Tigeot # define ADDR_SURF_P8_16x32_16x16 11 1195926deccbSFrançois Tigeot # define ADDR_SURF_P8_32x32_16x16 12 1196926deccbSFrançois Tigeot # define ADDR_SURF_P8_32x32_16x32 13 1197926deccbSFrançois Tigeot # define ADDR_SURF_P8_32x64_32x32 14 1198926deccbSFrançois Tigeot # define TILE_SPLIT(x) ((x) << 11) 1199926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_64B 0 1200926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_128B 1 1201926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_256B 2 1202926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_512B 3 1203926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_1KB 4 1204926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_2KB 5 1205926deccbSFrançois Tigeot # define ADDR_SURF_TILE_SPLIT_4KB 6 1206926deccbSFrançois Tigeot # define BANK_WIDTH(x) ((x) << 14) 1207926deccbSFrançois Tigeot # define ADDR_SURF_BANK_WIDTH_1 0 1208926deccbSFrançois Tigeot # define ADDR_SURF_BANK_WIDTH_2 1 1209926deccbSFrançois Tigeot # define ADDR_SURF_BANK_WIDTH_4 2 1210926deccbSFrançois Tigeot # define ADDR_SURF_BANK_WIDTH_8 3 1211926deccbSFrançois Tigeot # define BANK_HEIGHT(x) ((x) << 16) 1212926deccbSFrançois Tigeot # define ADDR_SURF_BANK_HEIGHT_1 0 1213926deccbSFrançois Tigeot # define ADDR_SURF_BANK_HEIGHT_2 1 1214926deccbSFrançois Tigeot # define ADDR_SURF_BANK_HEIGHT_4 2 1215926deccbSFrançois Tigeot # define ADDR_SURF_BANK_HEIGHT_8 3 1216926deccbSFrançois Tigeot # define MACRO_TILE_ASPECT(x) ((x) << 18) 1217926deccbSFrançois Tigeot # define ADDR_SURF_MACRO_ASPECT_1 0 1218926deccbSFrançois Tigeot # define ADDR_SURF_MACRO_ASPECT_2 1 1219926deccbSFrançois Tigeot # define ADDR_SURF_MACRO_ASPECT_4 2 1220926deccbSFrançois Tigeot # define ADDR_SURF_MACRO_ASPECT_8 3 1221926deccbSFrançois Tigeot # define NUM_BANKS(x) ((x) << 20) 1222926deccbSFrançois Tigeot # define ADDR_SURF_2_BANK 0 1223926deccbSFrançois Tigeot # define ADDR_SURF_4_BANK 1 1224926deccbSFrançois Tigeot # define ADDR_SURF_8_BANK 2 1225926deccbSFrançois Tigeot # define ADDR_SURF_16_BANK 3 1226926deccbSFrançois Tigeot 1227926deccbSFrançois Tigeot #define CB_PERFCOUNTER0_SELECT0 0x9a20 1228926deccbSFrançois Tigeot #define CB_PERFCOUNTER0_SELECT1 0x9a24 1229926deccbSFrançois Tigeot #define CB_PERFCOUNTER1_SELECT0 0x9a28 1230926deccbSFrançois Tigeot #define CB_PERFCOUNTER1_SELECT1 0x9a2c 1231926deccbSFrançois Tigeot #define CB_PERFCOUNTER2_SELECT0 0x9a30 1232926deccbSFrançois Tigeot #define CB_PERFCOUNTER2_SELECT1 0x9a34 1233926deccbSFrançois Tigeot #define CB_PERFCOUNTER3_SELECT0 0x9a38 1234926deccbSFrançois Tigeot #define CB_PERFCOUNTER3_SELECT1 0x9a3c 1235926deccbSFrançois Tigeot 123657e252bfSMichael Neumann #define CB_CGTT_SCLK_CTRL 0x9a60 123757e252bfSMichael Neumann 1238926deccbSFrançois Tigeot #define GC_USER_RB_BACKEND_DISABLE 0x9B7C 1239926deccbSFrançois Tigeot #define BACKEND_DISABLE_MASK 0x00FF0000 1240926deccbSFrançois Tigeot #define BACKEND_DISABLE_SHIFT 16 1241926deccbSFrançois Tigeot 1242926deccbSFrançois Tigeot #define TCP_CHAN_STEER_LO 0xac0c 1243926deccbSFrançois Tigeot #define TCP_CHAN_STEER_HI 0xac10 1244926deccbSFrançois Tigeot 1245926deccbSFrançois Tigeot #define CP_RB0_BASE 0xC100 1246926deccbSFrançois Tigeot #define CP_RB0_CNTL 0xC104 1247926deccbSFrançois Tigeot #define RB_BUFSZ(x) ((x) << 0) 1248926deccbSFrançois Tigeot #define RB_BLKSZ(x) ((x) << 8) 1249926deccbSFrançois Tigeot #define BUF_SWAP_32BIT (2 << 16) 1250926deccbSFrançois Tigeot #define RB_NO_UPDATE (1 << 27) 1251926deccbSFrançois Tigeot #define RB_RPTR_WR_ENA (1 << 31) 1252926deccbSFrançois Tigeot 1253926deccbSFrançois Tigeot #define CP_RB0_RPTR_ADDR 0xC10C 1254926deccbSFrançois Tigeot #define CP_RB0_RPTR_ADDR_HI 0xC110 1255926deccbSFrançois Tigeot #define CP_RB0_WPTR 0xC114 1256926deccbSFrançois Tigeot 1257926deccbSFrançois Tigeot #define CP_PFP_UCODE_ADDR 0xC150 1258926deccbSFrançois Tigeot #define CP_PFP_UCODE_DATA 0xC154 1259926deccbSFrançois Tigeot #define CP_ME_RAM_RADDR 0xC158 1260926deccbSFrançois Tigeot #define CP_ME_RAM_WADDR 0xC15C 1261926deccbSFrançois Tigeot #define CP_ME_RAM_DATA 0xC160 1262926deccbSFrançois Tigeot 1263926deccbSFrançois Tigeot #define CP_CE_UCODE_ADDR 0xC168 1264926deccbSFrançois Tigeot #define CP_CE_UCODE_DATA 0xC16C 1265926deccbSFrançois Tigeot 1266926deccbSFrançois Tigeot #define CP_RB1_BASE 0xC180 1267926deccbSFrançois Tigeot #define CP_RB1_CNTL 0xC184 1268926deccbSFrançois Tigeot #define CP_RB1_RPTR_ADDR 0xC188 1269926deccbSFrançois Tigeot #define CP_RB1_RPTR_ADDR_HI 0xC18C 1270926deccbSFrançois Tigeot #define CP_RB1_WPTR 0xC190 1271926deccbSFrançois Tigeot #define CP_RB2_BASE 0xC194 1272926deccbSFrançois Tigeot #define CP_RB2_CNTL 0xC198 1273926deccbSFrançois Tigeot #define CP_RB2_RPTR_ADDR 0xC19C 1274926deccbSFrançois Tigeot #define CP_RB2_RPTR_ADDR_HI 0xC1A0 1275926deccbSFrançois Tigeot #define CP_RB2_WPTR 0xC1A4 1276926deccbSFrançois Tigeot #define CP_INT_CNTL_RING0 0xC1A8 1277926deccbSFrançois Tigeot #define CP_INT_CNTL_RING1 0xC1AC 1278926deccbSFrançois Tigeot #define CP_INT_CNTL_RING2 0xC1B0 1279926deccbSFrançois Tigeot # define CNTX_BUSY_INT_ENABLE (1 << 19) 1280926deccbSFrançois Tigeot # define CNTX_EMPTY_INT_ENABLE (1 << 20) 1281926deccbSFrançois Tigeot # define WAIT_MEM_SEM_INT_ENABLE (1 << 21) 1282926deccbSFrançois Tigeot # define TIME_STAMP_INT_ENABLE (1 << 26) 1283926deccbSFrançois Tigeot # define CP_RINGID2_INT_ENABLE (1 << 29) 1284926deccbSFrançois Tigeot # define CP_RINGID1_INT_ENABLE (1 << 30) 1285926deccbSFrançois Tigeot # define CP_RINGID0_INT_ENABLE (1 << 31) 1286926deccbSFrançois Tigeot #define CP_INT_STATUS_RING0 0xC1B4 1287926deccbSFrançois Tigeot #define CP_INT_STATUS_RING1 0xC1B8 1288926deccbSFrançois Tigeot #define CP_INT_STATUS_RING2 0xC1BC 1289926deccbSFrançois Tigeot # define WAIT_MEM_SEM_INT_STAT (1 << 21) 1290926deccbSFrançois Tigeot # define TIME_STAMP_INT_STAT (1 << 26) 1291926deccbSFrançois Tigeot # define CP_RINGID2_INT_STAT (1 << 29) 1292926deccbSFrançois Tigeot # define CP_RINGID1_INT_STAT (1 << 30) 1293926deccbSFrançois Tigeot # define CP_RINGID0_INT_STAT (1 << 31) 1294926deccbSFrançois Tigeot 129557e252bfSMichael Neumann #define CP_MEM_SLP_CNTL 0xC1E4 129657e252bfSMichael Neumann # define CP_MEM_LS_EN (1 << 0) 129757e252bfSMichael Neumann 1298926deccbSFrançois Tigeot #define CP_DEBUG 0xC1FC 1299926deccbSFrançois Tigeot 1300926deccbSFrançois Tigeot #define RLC_CNTL 0xC300 1301926deccbSFrançois Tigeot # define RLC_ENABLE (1 << 0) 1302926deccbSFrançois Tigeot #define RLC_RL_BASE 0xC304 1303926deccbSFrançois Tigeot #define RLC_RL_SIZE 0xC308 1304926deccbSFrançois Tigeot #define RLC_LB_CNTL 0xC30C 130557e252bfSMichael Neumann # define LOAD_BALANCE_ENABLE (1 << 0) 1306926deccbSFrançois Tigeot #define RLC_SAVE_AND_RESTORE_BASE 0xC310 1307926deccbSFrançois Tigeot #define RLC_LB_CNTR_MAX 0xC314 1308926deccbSFrançois Tigeot #define RLC_LB_CNTR_INIT 0xC318 1309926deccbSFrançois Tigeot 1310926deccbSFrançois Tigeot #define RLC_CLEAR_STATE_RESTORE_BASE 0xC320 1311926deccbSFrançois Tigeot 1312926deccbSFrançois Tigeot #define RLC_UCODE_ADDR 0xC32C 1313926deccbSFrançois Tigeot #define RLC_UCODE_DATA 0xC330 1314926deccbSFrançois Tigeot 1315926deccbSFrançois Tigeot #define RLC_GPU_CLOCK_COUNT_LSB 0xC338 1316926deccbSFrançois Tigeot #define RLC_GPU_CLOCK_COUNT_MSB 0xC33C 1317926deccbSFrançois Tigeot #define RLC_CAPTURE_GPU_CLOCK_COUNT 0xC340 1318926deccbSFrançois Tigeot #define RLC_MC_CNTL 0xC344 1319926deccbSFrançois Tigeot #define RLC_UCODE_CNTL 0xC348 132057e252bfSMichael Neumann #define RLC_STAT 0xC34C 132157e252bfSMichael Neumann # define RLC_BUSY_STATUS (1 << 0) 132257e252bfSMichael Neumann # define GFX_POWER_STATUS (1 << 1) 132357e252bfSMichael Neumann # define GFX_CLOCK_STATUS (1 << 2) 132457e252bfSMichael Neumann # define GFX_LS_STATUS (1 << 3) 132557e252bfSMichael Neumann 132657e252bfSMichael Neumann #define RLC_PG_CNTL 0xC35C 132757e252bfSMichael Neumann # define GFX_PG_ENABLE (1 << 0) 132857e252bfSMichael Neumann # define GFX_PG_SRC (1 << 1) 132957e252bfSMichael Neumann 133057e252bfSMichael Neumann #define RLC_CGTT_MGCG_OVERRIDE 0xC400 133157e252bfSMichael Neumann #define RLC_CGCG_CGLS_CTRL 0xC404 133257e252bfSMichael Neumann # define CGCG_EN (1 << 0) 133357e252bfSMichael Neumann # define CGLS_EN (1 << 1) 133457e252bfSMichael Neumann 133557e252bfSMichael Neumann #define RLC_TTOP_D 0xC414 133657e252bfSMichael Neumann # define RLC_PUD(x) ((x) << 0) 133757e252bfSMichael Neumann # define RLC_PUD_MASK (0xff << 0) 133857e252bfSMichael Neumann # define RLC_PDD(x) ((x) << 8) 133957e252bfSMichael Neumann # define RLC_PDD_MASK (0xff << 8) 134057e252bfSMichael Neumann # define RLC_TTPD(x) ((x) << 16) 134157e252bfSMichael Neumann # define RLC_TTPD_MASK (0xff << 16) 134257e252bfSMichael Neumann # define RLC_MSD(x) ((x) << 24) 134357e252bfSMichael Neumann # define RLC_MSD_MASK (0xff << 24) 134457e252bfSMichael Neumann 134557e252bfSMichael Neumann #define RLC_LB_INIT_CU_MASK 0xC41C 134657e252bfSMichael Neumann 134757e252bfSMichael Neumann #define RLC_PG_AO_CU_MASK 0xC42C 134857e252bfSMichael Neumann #define RLC_MAX_PG_CU 0xC430 134957e252bfSMichael Neumann # define MAX_PU_CU(x) ((x) << 0) 135057e252bfSMichael Neumann # define MAX_PU_CU_MASK (0xff << 0) 135157e252bfSMichael Neumann #define RLC_AUTO_PG_CTRL 0xC434 135257e252bfSMichael Neumann # define AUTO_PG_EN (1 << 0) 135357e252bfSMichael Neumann # define GRBM_REG_SGIT(x) ((x) << 3) 135457e252bfSMichael Neumann # define GRBM_REG_SGIT_MASK (0xffff << 3) 135557e252bfSMichael Neumann # define PG_AFTER_GRBM_REG_ST(x) ((x) << 19) 135657e252bfSMichael Neumann # define PG_AFTER_GRBM_REG_ST_MASK (0x1fff << 19) 135757e252bfSMichael Neumann 135857e252bfSMichael Neumann #define RLC_SERDES_WR_MASTER_MASK_0 0xC454 135957e252bfSMichael Neumann #define RLC_SERDES_WR_MASTER_MASK_1 0xC458 136057e252bfSMichael Neumann #define RLC_SERDES_WR_CTRL 0xC45C 136157e252bfSMichael Neumann 136257e252bfSMichael Neumann #define RLC_SERDES_MASTER_BUSY_0 0xC464 136357e252bfSMichael Neumann #define RLC_SERDES_MASTER_BUSY_1 0xC468 136457e252bfSMichael Neumann 136557e252bfSMichael Neumann #define RLC_GCPM_GENERAL_3 0xC478 136657e252bfSMichael Neumann 136757e252bfSMichael Neumann #define DB_RENDER_CONTROL 0x28000 136857e252bfSMichael Neumann 136957e252bfSMichael Neumann #define DB_DEPTH_INFO 0x2803c 1370926deccbSFrançois Tigeot 1371926deccbSFrançois Tigeot #define PA_SC_RASTER_CONFIG 0x28350 1372926deccbSFrançois Tigeot # define RASTER_CONFIG_RB_MAP_0 0 1373926deccbSFrançois Tigeot # define RASTER_CONFIG_RB_MAP_1 1 1374926deccbSFrançois Tigeot # define RASTER_CONFIG_RB_MAP_2 2 1375926deccbSFrançois Tigeot # define RASTER_CONFIG_RB_MAP_3 3 1376926deccbSFrançois Tigeot 1377926deccbSFrançois Tigeot #define VGT_EVENT_INITIATOR 0x28a90 1378926deccbSFrançois Tigeot # define SAMPLE_STREAMOUTSTATS1 (1 << 0) 1379926deccbSFrançois Tigeot # define SAMPLE_STREAMOUTSTATS2 (2 << 0) 1380926deccbSFrançois Tigeot # define SAMPLE_STREAMOUTSTATS3 (3 << 0) 1381926deccbSFrançois Tigeot # define CACHE_FLUSH_TS (4 << 0) 1382926deccbSFrançois Tigeot # define CACHE_FLUSH (6 << 0) 1383926deccbSFrançois Tigeot # define CS_PARTIAL_FLUSH (7 << 0) 1384926deccbSFrançois Tigeot # define VGT_STREAMOUT_RESET (10 << 0) 1385926deccbSFrançois Tigeot # define END_OF_PIPE_INCR_DE (11 << 0) 1386926deccbSFrançois Tigeot # define END_OF_PIPE_IB_END (12 << 0) 1387926deccbSFrançois Tigeot # define RST_PIX_CNT (13 << 0) 1388926deccbSFrançois Tigeot # define VS_PARTIAL_FLUSH (15 << 0) 1389926deccbSFrançois Tigeot # define PS_PARTIAL_FLUSH (16 << 0) 1390926deccbSFrançois Tigeot # define CACHE_FLUSH_AND_INV_TS_EVENT (20 << 0) 1391926deccbSFrançois Tigeot # define ZPASS_DONE (21 << 0) 1392926deccbSFrançois Tigeot # define CACHE_FLUSH_AND_INV_EVENT (22 << 0) 1393926deccbSFrançois Tigeot # define PERFCOUNTER_START (23 << 0) 1394926deccbSFrançois Tigeot # define PERFCOUNTER_STOP (24 << 0) 1395926deccbSFrançois Tigeot # define PIPELINESTAT_START (25 << 0) 1396926deccbSFrançois Tigeot # define PIPELINESTAT_STOP (26 << 0) 1397926deccbSFrançois Tigeot # define PERFCOUNTER_SAMPLE (27 << 0) 1398926deccbSFrançois Tigeot # define SAMPLE_PIPELINESTAT (30 << 0) 1399926deccbSFrançois Tigeot # define SAMPLE_STREAMOUTSTATS (32 << 0) 1400926deccbSFrançois Tigeot # define RESET_VTX_CNT (33 << 0) 1401926deccbSFrançois Tigeot # define VGT_FLUSH (36 << 0) 1402926deccbSFrançois Tigeot # define BOTTOM_OF_PIPE_TS (40 << 0) 1403926deccbSFrançois Tigeot # define DB_CACHE_FLUSH_AND_INV (42 << 0) 1404926deccbSFrançois Tigeot # define FLUSH_AND_INV_DB_DATA_TS (43 << 0) 1405926deccbSFrançois Tigeot # define FLUSH_AND_INV_DB_META (44 << 0) 1406926deccbSFrançois Tigeot # define FLUSH_AND_INV_CB_DATA_TS (45 << 0) 1407926deccbSFrançois Tigeot # define FLUSH_AND_INV_CB_META (46 << 0) 1408926deccbSFrançois Tigeot # define CS_DONE (47 << 0) 1409926deccbSFrançois Tigeot # define PS_DONE (48 << 0) 1410926deccbSFrançois Tigeot # define FLUSH_AND_INV_CB_PIXEL_DATA (49 << 0) 1411926deccbSFrançois Tigeot # define THREAD_TRACE_START (51 << 0) 1412926deccbSFrançois Tigeot # define THREAD_TRACE_STOP (52 << 0) 1413926deccbSFrançois Tigeot # define THREAD_TRACE_FLUSH (54 << 0) 1414926deccbSFrançois Tigeot # define THREAD_TRACE_FINISH (55 << 0) 1415926deccbSFrançois Tigeot 141657e252bfSMichael Neumann /* PIF PHY0 registers idx/data 0x8/0xc */ 141757e252bfSMichael Neumann #define PB0_PIF_CNTL 0x10 141857e252bfSMichael Neumann # define LS2_EXIT_TIME(x) ((x) << 17) 141957e252bfSMichael Neumann # define LS2_EXIT_TIME_MASK (0x7 << 17) 142057e252bfSMichael Neumann # define LS2_EXIT_TIME_SHIFT 17 142157e252bfSMichael Neumann #define PB0_PIF_PAIRING 0x11 142257e252bfSMichael Neumann # define MULTI_PIF (1 << 25) 142357e252bfSMichael Neumann #define PB0_PIF_PWRDOWN_0 0x12 142457e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_0(x) ((x) << 7) 142557e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_0_MASK (0x7 << 7) 142657e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_0_SHIFT 7 142757e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_0(x) ((x) << 10) 142857e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_0_MASK (0x7 << 10) 142957e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_0_SHIFT 10 143057e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_0(x) ((x) << 24) 143157e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_0_MASK (0x7 << 24) 143257e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_0_SHIFT 24 143357e252bfSMichael Neumann #define PB0_PIF_PWRDOWN_1 0x13 143457e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_1(x) ((x) << 7) 143557e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_1_MASK (0x7 << 7) 143657e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_1_SHIFT 7 143757e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_1(x) ((x) << 10) 143857e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_1_MASK (0x7 << 10) 143957e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_1_SHIFT 10 144057e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_1(x) ((x) << 24) 144157e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_1_MASK (0x7 << 24) 144257e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_1_SHIFT 24 144357e252bfSMichael Neumann 144457e252bfSMichael Neumann #define PB0_PIF_PWRDOWN_2 0x17 144557e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_2(x) ((x) << 7) 144657e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_2_MASK (0x7 << 7) 144757e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_2_SHIFT 7 144857e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_2(x) ((x) << 10) 144957e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_2_MASK (0x7 << 10) 145057e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_2_SHIFT 10 145157e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_2(x) ((x) << 24) 145257e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_2_MASK (0x7 << 24) 145357e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_2_SHIFT 24 145457e252bfSMichael Neumann #define PB0_PIF_PWRDOWN_3 0x18 145557e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_3(x) ((x) << 7) 145657e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_3_MASK (0x7 << 7) 145757e252bfSMichael Neumann # define PLL_POWER_STATE_IN_TXS2_3_SHIFT 7 145857e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_3(x) ((x) << 10) 145957e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_3_MASK (0x7 << 10) 146057e252bfSMichael Neumann # define PLL_POWER_STATE_IN_OFF_3_SHIFT 10 146157e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_3(x) ((x) << 24) 146257e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_3_MASK (0x7 << 24) 146357e252bfSMichael Neumann # define PLL_RAMP_UP_TIME_3_SHIFT 24 146457e252bfSMichael Neumann /* PIF PHY1 registers idx/data 0x10/0x14 */ 146557e252bfSMichael Neumann #define PB1_PIF_CNTL 0x10 146657e252bfSMichael Neumann #define PB1_PIF_PAIRING 0x11 146757e252bfSMichael Neumann #define PB1_PIF_PWRDOWN_0 0x12 146857e252bfSMichael Neumann #define PB1_PIF_PWRDOWN_1 0x13 146957e252bfSMichael Neumann 147057e252bfSMichael Neumann #define PB1_PIF_PWRDOWN_2 0x17 147157e252bfSMichael Neumann #define PB1_PIF_PWRDOWN_3 0x18 147257e252bfSMichael Neumann /* PCIE registers idx/data 0x30/0x34 */ 147357e252bfSMichael Neumann #define PCIE_CNTL2 0x1c /* PCIE */ 147457e252bfSMichael Neumann # define SLV_MEM_LS_EN (1 << 16) 14754cd92098Szrj # define SLV_MEM_AGGRESSIVE_LS_EN (1 << 17) 147657e252bfSMichael Neumann # define MST_MEM_LS_EN (1 << 18) 147757e252bfSMichael Neumann # define REPLAY_MEM_LS_EN (1 << 19) 147857e252bfSMichael Neumann #define PCIE_LC_STATUS1 0x28 /* PCIE */ 147957e252bfSMichael Neumann # define LC_REVERSE_RCVR (1 << 0) 148057e252bfSMichael Neumann # define LC_REVERSE_XMIT (1 << 1) 148157e252bfSMichael Neumann # define LC_OPERATING_LINK_WIDTH_MASK (0x7 << 2) 148257e252bfSMichael Neumann # define LC_OPERATING_LINK_WIDTH_SHIFT 2 148357e252bfSMichael Neumann # define LC_DETECTED_LINK_WIDTH_MASK (0x7 << 5) 148457e252bfSMichael Neumann # define LC_DETECTED_LINK_WIDTH_SHIFT 5 148557e252bfSMichael Neumann 148657e252bfSMichael Neumann #define PCIE_P_CNTL 0x40 /* PCIE */ 148757e252bfSMichael Neumann # define P_IGNORE_EDB_ERR (1 << 6) 148857e252bfSMichael Neumann 148957e252bfSMichael Neumann /* PCIE PORT registers idx/data 0x38/0x3c */ 149057e252bfSMichael Neumann #define PCIE_LC_CNTL 0xa0 149157e252bfSMichael Neumann # define LC_L0S_INACTIVITY(x) ((x) << 8) 149257e252bfSMichael Neumann # define LC_L0S_INACTIVITY_MASK (0xf << 8) 149357e252bfSMichael Neumann # define LC_L0S_INACTIVITY_SHIFT 8 149457e252bfSMichael Neumann # define LC_L1_INACTIVITY(x) ((x) << 12) 149557e252bfSMichael Neumann # define LC_L1_INACTIVITY_MASK (0xf << 12) 149657e252bfSMichael Neumann # define LC_L1_INACTIVITY_SHIFT 12 149757e252bfSMichael Neumann # define LC_PMI_TO_L1_DIS (1 << 16) 149857e252bfSMichael Neumann # define LC_ASPM_TO_L1_DIS (1 << 24) 149957e252bfSMichael Neumann #define PCIE_LC_LINK_WIDTH_CNTL 0xa2 /* PCIE_P */ 150057e252bfSMichael Neumann # define LC_LINK_WIDTH_SHIFT 0 150157e252bfSMichael Neumann # define LC_LINK_WIDTH_MASK 0x7 150257e252bfSMichael Neumann # define LC_LINK_WIDTH_X0 0 150357e252bfSMichael Neumann # define LC_LINK_WIDTH_X1 1 150457e252bfSMichael Neumann # define LC_LINK_WIDTH_X2 2 150557e252bfSMichael Neumann # define LC_LINK_WIDTH_X4 3 150657e252bfSMichael Neumann # define LC_LINK_WIDTH_X8 4 150757e252bfSMichael Neumann # define LC_LINK_WIDTH_X16 6 150857e252bfSMichael Neumann # define LC_LINK_WIDTH_RD_SHIFT 4 150957e252bfSMichael Neumann # define LC_LINK_WIDTH_RD_MASK 0x70 151057e252bfSMichael Neumann # define LC_RECONFIG_ARC_MISSING_ESCAPE (1 << 7) 151157e252bfSMichael Neumann # define LC_RECONFIG_NOW (1 << 8) 151257e252bfSMichael Neumann # define LC_RENEGOTIATION_SUPPORT (1 << 9) 151357e252bfSMichael Neumann # define LC_RENEGOTIATE_EN (1 << 10) 151457e252bfSMichael Neumann # define LC_SHORT_RECONFIG_EN (1 << 11) 151557e252bfSMichael Neumann # define LC_UPCONFIGURE_SUPPORT (1 << 12) 151657e252bfSMichael Neumann # define LC_UPCONFIGURE_DIS (1 << 13) 151757e252bfSMichael Neumann # define LC_DYN_LANES_PWR_STATE(x) ((x) << 21) 151857e252bfSMichael Neumann # define LC_DYN_LANES_PWR_STATE_MASK (0x3 << 21) 151957e252bfSMichael Neumann # define LC_DYN_LANES_PWR_STATE_SHIFT 21 152057e252bfSMichael Neumann #define PCIE_LC_N_FTS_CNTL 0xa3 /* PCIE_P */ 152157e252bfSMichael Neumann # define LC_XMIT_N_FTS(x) ((x) << 0) 152257e252bfSMichael Neumann # define LC_XMIT_N_FTS_MASK (0xff << 0) 152357e252bfSMichael Neumann # define LC_XMIT_N_FTS_SHIFT 0 152457e252bfSMichael Neumann # define LC_XMIT_N_FTS_OVERRIDE_EN (1 << 8) 152557e252bfSMichael Neumann # define LC_N_FTS_MASK (0xff << 24) 152657e252bfSMichael Neumann #define PCIE_LC_SPEED_CNTL 0xa4 /* PCIE_P */ 152757e252bfSMichael Neumann # define LC_GEN2_EN_STRAP (1 << 0) 152857e252bfSMichael Neumann # define LC_GEN3_EN_STRAP (1 << 1) 152957e252bfSMichael Neumann # define LC_TARGET_LINK_SPEED_OVERRIDE_EN (1 << 2) 153057e252bfSMichael Neumann # define LC_TARGET_LINK_SPEED_OVERRIDE_MASK (0x3 << 3) 153157e252bfSMichael Neumann # define LC_TARGET_LINK_SPEED_OVERRIDE_SHIFT 3 153257e252bfSMichael Neumann # define LC_FORCE_EN_SW_SPEED_CHANGE (1 << 5) 153357e252bfSMichael Neumann # define LC_FORCE_DIS_SW_SPEED_CHANGE (1 << 6) 153457e252bfSMichael Neumann # define LC_FORCE_EN_HW_SPEED_CHANGE (1 << 7) 153557e252bfSMichael Neumann # define LC_FORCE_DIS_HW_SPEED_CHANGE (1 << 8) 153657e252bfSMichael Neumann # define LC_INITIATE_LINK_SPEED_CHANGE (1 << 9) 153757e252bfSMichael Neumann # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_MASK (0x3 << 10) 153857e252bfSMichael Neumann # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_SHIFT 10 153957e252bfSMichael Neumann # define LC_CURRENT_DATA_RATE_MASK (0x3 << 13) /* 0/1/2 = gen1/2/3 */ 154057e252bfSMichael Neumann # define LC_CURRENT_DATA_RATE_SHIFT 13 154157e252bfSMichael Neumann # define LC_CLR_FAILED_SPD_CHANGE_CNT (1 << 16) 154257e252bfSMichael Neumann # define LC_OTHER_SIDE_EVER_SENT_GEN2 (1 << 18) 154357e252bfSMichael Neumann # define LC_OTHER_SIDE_SUPPORTS_GEN2 (1 << 19) 154457e252bfSMichael Neumann # define LC_OTHER_SIDE_EVER_SENT_GEN3 (1 << 20) 154557e252bfSMichael Neumann # define LC_OTHER_SIDE_SUPPORTS_GEN3 (1 << 21) 154657e252bfSMichael Neumann 154757e252bfSMichael Neumann #define PCIE_LC_CNTL2 0xb1 154857e252bfSMichael Neumann # define LC_ALLOW_PDWN_IN_L1 (1 << 17) 154957e252bfSMichael Neumann # define LC_ALLOW_PDWN_IN_L23 (1 << 18) 155057e252bfSMichael Neumann 155157e252bfSMichael Neumann #define PCIE_LC_CNTL3 0xb5 /* PCIE_P */ 155257e252bfSMichael Neumann # define LC_GO_TO_RECOVERY (1 << 30) 155357e252bfSMichael Neumann #define PCIE_LC_CNTL4 0xb6 /* PCIE_P */ 155457e252bfSMichael Neumann # define LC_REDO_EQ (1 << 5) 155557e252bfSMichael Neumann # define LC_SET_QUIESCE (1 << 13) 155657e252bfSMichael Neumann 1557926deccbSFrançois Tigeot /* 1558f43cf1b1SMichael Neumann * UVD 1559f43cf1b1SMichael Neumann */ 1560f43cf1b1SMichael Neumann #define UVD_UDEC_ADDR_CONFIG 0xEF4C 1561f43cf1b1SMichael Neumann #define UVD_UDEC_DB_ADDR_CONFIG 0xEF50 1562f43cf1b1SMichael Neumann #define UVD_UDEC_DBW_ADDR_CONFIG 0xEF54 1563*1dedbd3bSFrançois Tigeot #define UVD_NO_OP 0xEFFC 1564f43cf1b1SMichael Neumann #define UVD_RBC_RB_RPTR 0xF690 1565f43cf1b1SMichael Neumann #define UVD_RBC_RB_WPTR 0xF694 1566c59a5c48SFrançois Tigeot #define UVD_STATUS 0xf6bc 1567f43cf1b1SMichael Neumann 156857e252bfSMichael Neumann #define UVD_CGC_CTRL 0xF4B0 156957e252bfSMichael Neumann # define DCM (1 << 0) 157057e252bfSMichael Neumann # define CG_DT(x) ((x) << 2) 157157e252bfSMichael Neumann # define CG_DT_MASK (0xf << 2) 157257e252bfSMichael Neumann # define CLK_OD(x) ((x) << 6) 157357e252bfSMichael Neumann # define CLK_OD_MASK (0x1f << 6) 157457e252bfSMichael Neumann 157557e252bfSMichael Neumann /* UVD CTX indirect */ 157657e252bfSMichael Neumann #define UVD_CGC_MEM_CTRL 0xC0 157757e252bfSMichael Neumann #define UVD_CGC_CTRL2 0xC1 157857e252bfSMichael Neumann # define DYN_OR_EN (1 << 0) 157957e252bfSMichael Neumann # define DYN_RR_EN (1 << 1) 158057e252bfSMichael Neumann # define G_DIV_ID(x) ((x) << 2) 158157e252bfSMichael Neumann # define G_DIV_ID_MASK (0x7 << 2) 158257e252bfSMichael Neumann 1583f43cf1b1SMichael Neumann /* 1584926deccbSFrançois Tigeot * PM4 1585926deccbSFrançois Tigeot */ 1586b403bed8SMichael Neumann #define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ 1587926deccbSFrançois Tigeot (((reg) >> 2) & 0xFFFF) | \ 1588926deccbSFrançois Tigeot ((n) & 0x3FFF) << 16) 1589926deccbSFrançois Tigeot #define CP_PACKET2 0x80000000 1590926deccbSFrançois Tigeot #define PACKET2_PAD_SHIFT 0 1591926deccbSFrançois Tigeot #define PACKET2_PAD_MASK (0x3fffffff << 0) 1592926deccbSFrançois Tigeot 1593926deccbSFrançois Tigeot #define PACKET2(v) (CP_PACKET2 | REG_SET(PACKET2_PAD, (v))) 1594926deccbSFrançois Tigeot 1595b403bed8SMichael Neumann #define PACKET3(op, n) ((RADEON_PACKET_TYPE3 << 30) | \ 1596926deccbSFrançois Tigeot (((op) & 0xFF) << 8) | \ 1597926deccbSFrançois Tigeot ((n) & 0x3FFF) << 16) 1598926deccbSFrançois Tigeot 1599926deccbSFrançois Tigeot #define PACKET3_COMPUTE(op, n) (PACKET3(op, n) | 1 << 1) 1600926deccbSFrançois Tigeot 1601926deccbSFrançois Tigeot /* Packet 3 types */ 1602926deccbSFrançois Tigeot #define PACKET3_NOP 0x10 1603926deccbSFrançois Tigeot #define PACKET3_SET_BASE 0x11 1604926deccbSFrançois Tigeot #define PACKET3_BASE_INDEX(x) ((x) << 0) 1605926deccbSFrançois Tigeot #define GDS_PARTITION_BASE 2 1606926deccbSFrançois Tigeot #define CE_PARTITION_BASE 3 1607926deccbSFrançois Tigeot #define PACKET3_CLEAR_STATE 0x12 1608926deccbSFrançois Tigeot #define PACKET3_INDEX_BUFFER_SIZE 0x13 1609926deccbSFrançois Tigeot #define PACKET3_DISPATCH_DIRECT 0x15 1610926deccbSFrançois Tigeot #define PACKET3_DISPATCH_INDIRECT 0x16 1611926deccbSFrançois Tigeot #define PACKET3_ALLOC_GDS 0x1B 1612926deccbSFrançois Tigeot #define PACKET3_WRITE_GDS_RAM 0x1C 1613926deccbSFrançois Tigeot #define PACKET3_ATOMIC_GDS 0x1D 1614926deccbSFrançois Tigeot #define PACKET3_ATOMIC 0x1E 1615926deccbSFrançois Tigeot #define PACKET3_OCCLUSION_QUERY 0x1F 1616926deccbSFrançois Tigeot #define PACKET3_SET_PREDICATION 0x20 1617926deccbSFrançois Tigeot #define PACKET3_REG_RMW 0x21 1618926deccbSFrançois Tigeot #define PACKET3_COND_EXEC 0x22 1619926deccbSFrançois Tigeot #define PACKET3_PRED_EXEC 0x23 1620926deccbSFrançois Tigeot #define PACKET3_DRAW_INDIRECT 0x24 1621926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_INDIRECT 0x25 1622926deccbSFrançois Tigeot #define PACKET3_INDEX_BASE 0x26 1623926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_2 0x27 1624926deccbSFrançois Tigeot #define PACKET3_CONTEXT_CONTROL 0x28 1625926deccbSFrançois Tigeot #define PACKET3_INDEX_TYPE 0x2A 1626926deccbSFrançois Tigeot #define PACKET3_DRAW_INDIRECT_MULTI 0x2C 1627926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_AUTO 0x2D 1628926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_IMMD 0x2E 1629926deccbSFrançois Tigeot #define PACKET3_NUM_INSTANCES 0x2F 1630926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_MULTI_AUTO 0x30 1631926deccbSFrançois Tigeot #define PACKET3_INDIRECT_BUFFER_CONST 0x31 1632926deccbSFrançois Tigeot #define PACKET3_INDIRECT_BUFFER 0x32 1633926deccbSFrançois Tigeot #define PACKET3_STRMOUT_BUFFER_UPDATE 0x34 1634926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_OFFSET_2 0x35 1635926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_MULTI_ELEMENT 0x36 1636926deccbSFrançois Tigeot #define PACKET3_WRITE_DATA 0x37 1637926deccbSFrançois Tigeot #define WRITE_DATA_DST_SEL(x) ((x) << 8) 1638926deccbSFrançois Tigeot /* 0 - register 1639926deccbSFrançois Tigeot * 1 - memory (sync - via GRBM) 1640926deccbSFrançois Tigeot * 2 - tc/l2 1641926deccbSFrançois Tigeot * 3 - gds 1642926deccbSFrançois Tigeot * 4 - reserved 1643926deccbSFrançois Tigeot * 5 - memory (async - direct) 1644926deccbSFrançois Tigeot */ 1645926deccbSFrançois Tigeot #define WR_ONE_ADDR (1 << 16) 1646926deccbSFrançois Tigeot #define WR_CONFIRM (1 << 20) 1647926deccbSFrançois Tigeot #define WRITE_DATA_ENGINE_SEL(x) ((x) << 30) 1648926deccbSFrançois Tigeot /* 0 - me 1649926deccbSFrançois Tigeot * 1 - pfp 1650926deccbSFrançois Tigeot * 2 - ce 1651926deccbSFrançois Tigeot */ 1652926deccbSFrançois Tigeot #define PACKET3_DRAW_INDEX_INDIRECT_MULTI 0x38 1653926deccbSFrançois Tigeot #define PACKET3_MEM_SEMAPHORE 0x39 1654926deccbSFrançois Tigeot #define PACKET3_MPEG_INDEX 0x3A 1655926deccbSFrançois Tigeot #define PACKET3_COPY_DW 0x3B 1656926deccbSFrançois Tigeot #define PACKET3_WAIT_REG_MEM 0x3C 16577dcf36dcSFrançois Tigeot #define WAIT_REG_MEM_FUNCTION(x) ((x) << 0) 16587dcf36dcSFrançois Tigeot /* 0 - always 16597dcf36dcSFrançois Tigeot * 1 - < 16607dcf36dcSFrançois Tigeot * 2 - <= 16617dcf36dcSFrançois Tigeot * 3 - == 16627dcf36dcSFrançois Tigeot * 4 - != 16637dcf36dcSFrançois Tigeot * 5 - >= 16647dcf36dcSFrançois Tigeot * 6 - > 16657dcf36dcSFrançois Tigeot */ 16667dcf36dcSFrançois Tigeot #define WAIT_REG_MEM_MEM_SPACE(x) ((x) << 4) 16677dcf36dcSFrançois Tigeot /* 0 - reg 16687dcf36dcSFrançois Tigeot * 1 - mem 16697dcf36dcSFrançois Tigeot */ 16707dcf36dcSFrançois Tigeot #define WAIT_REG_MEM_ENGINE(x) ((x) << 8) 16717dcf36dcSFrançois Tigeot /* 0 - me 16727dcf36dcSFrançois Tigeot * 1 - pfp 16737dcf36dcSFrançois Tigeot */ 1674926deccbSFrançois Tigeot #define PACKET3_MEM_WRITE 0x3D 1675926deccbSFrançois Tigeot #define PACKET3_COPY_DATA 0x40 1676926deccbSFrançois Tigeot #define PACKET3_CP_DMA 0x41 1677926deccbSFrançois Tigeot /* 1. header 1678926deccbSFrançois Tigeot * 2. SRC_ADDR_LO or DATA [31:0] 1679926deccbSFrançois Tigeot * 3. CP_SYNC [31] | SRC_SEL [30:29] | ENGINE [27] | DST_SEL [21:20] | 1680926deccbSFrançois Tigeot * SRC_ADDR_HI [7:0] 1681926deccbSFrançois Tigeot * 4. DST_ADDR_LO [31:0] 1682926deccbSFrançois Tigeot * 5. DST_ADDR_HI [7:0] 1683926deccbSFrançois Tigeot * 6. COMMAND [30:21] | BYTE_COUNT [20:0] 1684926deccbSFrançois Tigeot */ 1685926deccbSFrançois Tigeot # define PACKET3_CP_DMA_DST_SEL(x) ((x) << 20) 16864cd92098Szrj /* 0 - DST_ADDR 1687926deccbSFrançois Tigeot * 1 - GDS 1688926deccbSFrançois Tigeot */ 1689926deccbSFrançois Tigeot # define PACKET3_CP_DMA_ENGINE(x) ((x) << 27) 1690926deccbSFrançois Tigeot /* 0 - ME 1691926deccbSFrançois Tigeot * 1 - PFP 1692926deccbSFrançois Tigeot */ 1693926deccbSFrançois Tigeot # define PACKET3_CP_DMA_SRC_SEL(x) ((x) << 29) 1694926deccbSFrançois Tigeot /* 0 - SRC_ADDR 1695926deccbSFrançois Tigeot * 1 - GDS 1696926deccbSFrançois Tigeot * 2 - DATA 1697926deccbSFrançois Tigeot */ 1698926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CP_SYNC (1 << 31) 1699926deccbSFrançois Tigeot /* COMMAND */ 1700926deccbSFrançois Tigeot # define PACKET3_CP_DMA_DIS_WC (1 << 21) 17014cd92098Szrj # define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) 1702926deccbSFrançois Tigeot /* 0 - none 1703926deccbSFrançois Tigeot * 1 - 8 in 16 1704926deccbSFrançois Tigeot * 2 - 8 in 32 1705926deccbSFrançois Tigeot * 3 - 8 in 64 1706926deccbSFrançois Tigeot */ 1707926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_DST_SWAP(x) ((x) << 24) 1708926deccbSFrançois Tigeot /* 0 - none 1709926deccbSFrançois Tigeot * 1 - 8 in 16 1710926deccbSFrançois Tigeot * 2 - 8 in 32 1711926deccbSFrançois Tigeot * 3 - 8 in 64 1712926deccbSFrançois Tigeot */ 1713926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_SAS (1 << 26) 1714926deccbSFrançois Tigeot /* 0 - memory 1715926deccbSFrançois Tigeot * 1 - register 1716926deccbSFrançois Tigeot */ 1717926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_DAS (1 << 27) 1718926deccbSFrançois Tigeot /* 0 - memory 1719926deccbSFrançois Tigeot * 1 - register 1720926deccbSFrançois Tigeot */ 1721926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_SAIC (1 << 28) 1722926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_DAIC (1 << 29) 1723926deccbSFrançois Tigeot # define PACKET3_CP_DMA_CMD_RAW_WAIT (1 << 30) 1724926deccbSFrançois Tigeot #define PACKET3_PFP_SYNC_ME 0x42 1725926deccbSFrançois Tigeot #define PACKET3_SURFACE_SYNC 0x43 1726926deccbSFrançois Tigeot # define PACKET3_DEST_BASE_0_ENA (1 << 0) 1727926deccbSFrançois Tigeot # define PACKET3_DEST_BASE_1_ENA (1 << 1) 1728926deccbSFrançois Tigeot # define PACKET3_CB0_DEST_BASE_ENA (1 << 6) 1729926deccbSFrançois Tigeot # define PACKET3_CB1_DEST_BASE_ENA (1 << 7) 1730926deccbSFrançois Tigeot # define PACKET3_CB2_DEST_BASE_ENA (1 << 8) 1731926deccbSFrançois Tigeot # define PACKET3_CB3_DEST_BASE_ENA (1 << 9) 1732926deccbSFrançois Tigeot # define PACKET3_CB4_DEST_BASE_ENA (1 << 10) 1733926deccbSFrançois Tigeot # define PACKET3_CB5_DEST_BASE_ENA (1 << 11) 1734926deccbSFrançois Tigeot # define PACKET3_CB6_DEST_BASE_ENA (1 << 12) 1735926deccbSFrançois Tigeot # define PACKET3_CB7_DEST_BASE_ENA (1 << 13) 1736926deccbSFrançois Tigeot # define PACKET3_DB_DEST_BASE_ENA (1 << 14) 1737926deccbSFrançois Tigeot # define PACKET3_DEST_BASE_2_ENA (1 << 19) 1738926deccbSFrançois Tigeot # define PACKET3_DEST_BASE_3_ENA (1 << 21) 1739926deccbSFrançois Tigeot # define PACKET3_TCL1_ACTION_ENA (1 << 22) 1740926deccbSFrançois Tigeot # define PACKET3_TC_ACTION_ENA (1 << 23) 1741926deccbSFrançois Tigeot # define PACKET3_CB_ACTION_ENA (1 << 25) 1742926deccbSFrançois Tigeot # define PACKET3_DB_ACTION_ENA (1 << 26) 1743926deccbSFrançois Tigeot # define PACKET3_SH_KCACHE_ACTION_ENA (1 << 27) 1744926deccbSFrançois Tigeot # define PACKET3_SH_ICACHE_ACTION_ENA (1 << 29) 1745926deccbSFrançois Tigeot #define PACKET3_ME_INITIALIZE 0x44 1746926deccbSFrançois Tigeot #define PACKET3_ME_INITIALIZE_DEVICE_ID(x) ((x) << 16) 1747926deccbSFrançois Tigeot #define PACKET3_COND_WRITE 0x45 1748926deccbSFrançois Tigeot #define PACKET3_EVENT_WRITE 0x46 1749926deccbSFrançois Tigeot #define EVENT_TYPE(x) ((x) << 0) 1750926deccbSFrançois Tigeot #define EVENT_INDEX(x) ((x) << 8) 1751926deccbSFrançois Tigeot /* 0 - any non-TS event 1752926deccbSFrançois Tigeot * 1 - ZPASS_DONE 1753926deccbSFrançois Tigeot * 2 - SAMPLE_PIPELINESTAT 1754926deccbSFrançois Tigeot * 3 - SAMPLE_STREAMOUTSTAT* 1755926deccbSFrançois Tigeot * 4 - *S_PARTIAL_FLUSH 1756926deccbSFrançois Tigeot * 5 - EOP events 1757926deccbSFrançois Tigeot * 6 - EOS events 1758926deccbSFrançois Tigeot * 7 - CACHE_FLUSH, CACHE_FLUSH_AND_INV_EVENT 1759926deccbSFrançois Tigeot */ 1760926deccbSFrançois Tigeot #define INV_L2 (1 << 20) 1761926deccbSFrançois Tigeot /* INV TC L2 cache when EVENT_INDEX = 7 */ 1762926deccbSFrançois Tigeot #define PACKET3_EVENT_WRITE_EOP 0x47 1763926deccbSFrançois Tigeot #define DATA_SEL(x) ((x) << 29) 1764926deccbSFrançois Tigeot /* 0 - discard 1765926deccbSFrançois Tigeot * 1 - send low 32bit data 1766926deccbSFrançois Tigeot * 2 - send 64bit data 1767926deccbSFrançois Tigeot * 3 - send 64bit counter value 1768926deccbSFrançois Tigeot */ 1769926deccbSFrançois Tigeot #define INT_SEL(x) ((x) << 24) 1770926deccbSFrançois Tigeot /* 0 - none 1771926deccbSFrançois Tigeot * 1 - interrupt only (DATA_SEL = 0) 1772926deccbSFrançois Tigeot * 2 - interrupt when data write is confirmed 1773926deccbSFrançois Tigeot */ 1774926deccbSFrançois Tigeot #define PACKET3_EVENT_WRITE_EOS 0x48 1775926deccbSFrançois Tigeot #define PACKET3_PREAMBLE_CNTL 0x4A 1776926deccbSFrançois Tigeot # define PACKET3_PREAMBLE_BEGIN_CLEAR_STATE (2 << 28) 1777926deccbSFrançois Tigeot # define PACKET3_PREAMBLE_END_CLEAR_STATE (3 << 28) 1778926deccbSFrançois Tigeot #define PACKET3_ONE_REG_WRITE 0x57 1779926deccbSFrançois Tigeot #define PACKET3_LOAD_CONFIG_REG 0x5F 1780926deccbSFrançois Tigeot #define PACKET3_LOAD_CONTEXT_REG 0x60 1781926deccbSFrançois Tigeot #define PACKET3_LOAD_SH_REG 0x61 1782926deccbSFrançois Tigeot #define PACKET3_SET_CONFIG_REG 0x68 1783926deccbSFrançois Tigeot #define PACKET3_SET_CONFIG_REG_START 0x00008000 1784926deccbSFrançois Tigeot #define PACKET3_SET_CONFIG_REG_END 0x0000b000 1785926deccbSFrançois Tigeot #define PACKET3_SET_CONTEXT_REG 0x69 1786926deccbSFrançois Tigeot #define PACKET3_SET_CONTEXT_REG_START 0x00028000 1787926deccbSFrançois Tigeot #define PACKET3_SET_CONTEXT_REG_END 0x00029000 1788926deccbSFrançois Tigeot #define PACKET3_SET_CONTEXT_REG_INDIRECT 0x73 1789926deccbSFrançois Tigeot #define PACKET3_SET_RESOURCE_INDIRECT 0x74 1790926deccbSFrançois Tigeot #define PACKET3_SET_SH_REG 0x76 1791926deccbSFrançois Tigeot #define PACKET3_SET_SH_REG_START 0x0000b000 1792926deccbSFrançois Tigeot #define PACKET3_SET_SH_REG_END 0x0000c000 1793926deccbSFrançois Tigeot #define PACKET3_SET_SH_REG_OFFSET 0x77 1794926deccbSFrançois Tigeot #define PACKET3_ME_WRITE 0x7A 1795926deccbSFrançois Tigeot #define PACKET3_SCRATCH_RAM_WRITE 0x7D 1796926deccbSFrançois Tigeot #define PACKET3_SCRATCH_RAM_READ 0x7E 1797926deccbSFrançois Tigeot #define PACKET3_CE_WRITE 0x7F 1798926deccbSFrançois Tigeot #define PACKET3_LOAD_CONST_RAM 0x80 1799926deccbSFrançois Tigeot #define PACKET3_WRITE_CONST_RAM 0x81 1800926deccbSFrançois Tigeot #define PACKET3_WRITE_CONST_RAM_OFFSET 0x82 1801926deccbSFrançois Tigeot #define PACKET3_DUMP_CONST_RAM 0x83 1802926deccbSFrançois Tigeot #define PACKET3_INCREMENT_CE_COUNTER 0x84 1803926deccbSFrançois Tigeot #define PACKET3_INCREMENT_DE_COUNTER 0x85 1804926deccbSFrançois Tigeot #define PACKET3_WAIT_ON_CE_COUNTER 0x86 1805926deccbSFrançois Tigeot #define PACKET3_WAIT_ON_DE_COUNTER 0x87 1806926deccbSFrançois Tigeot #define PACKET3_WAIT_ON_DE_COUNTER_DIFF 0x88 1807926deccbSFrançois Tigeot #define PACKET3_SET_CE_DE_COUNTERS 0x89 1808926deccbSFrançois Tigeot #define PACKET3_WAIT_ON_AVAIL_BUFFER 0x8A 1809926deccbSFrançois Tigeot #define PACKET3_SWITCH_BUFFER 0x8B 1810926deccbSFrançois Tigeot 1811926deccbSFrançois Tigeot /* ASYNC DMA - first instance at 0xd000, second at 0xd800 */ 1812926deccbSFrançois Tigeot #define DMA0_REGISTER_OFFSET 0x0 /* not a register */ 1813926deccbSFrançois Tigeot #define DMA1_REGISTER_OFFSET 0x800 /* not a register */ 1814926deccbSFrançois Tigeot 1815926deccbSFrançois Tigeot #define DMA_RB_CNTL 0xd000 1816926deccbSFrançois Tigeot # define DMA_RB_ENABLE (1 << 0) 1817926deccbSFrançois Tigeot # define DMA_RB_SIZE(x) ((x) << 1) /* log2 */ 1818926deccbSFrançois Tigeot # define DMA_RB_SWAP_ENABLE (1 << 9) /* 8IN32 */ 1819926deccbSFrançois Tigeot # define DMA_RPTR_WRITEBACK_ENABLE (1 << 12) 1820926deccbSFrançois Tigeot # define DMA_RPTR_WRITEBACK_SWAP_ENABLE (1 << 13) /* 8IN32 */ 1821926deccbSFrançois Tigeot # define DMA_RPTR_WRITEBACK_TIMER(x) ((x) << 16) /* log2 */ 1822926deccbSFrançois Tigeot #define DMA_RB_BASE 0xd004 1823926deccbSFrançois Tigeot #define DMA_RB_RPTR 0xd008 1824926deccbSFrançois Tigeot #define DMA_RB_WPTR 0xd00c 1825926deccbSFrançois Tigeot 1826926deccbSFrançois Tigeot #define DMA_RB_RPTR_ADDR_HI 0xd01c 1827926deccbSFrançois Tigeot #define DMA_RB_RPTR_ADDR_LO 0xd020 1828926deccbSFrançois Tigeot 1829926deccbSFrançois Tigeot #define DMA_IB_CNTL 0xd024 1830926deccbSFrançois Tigeot # define DMA_IB_ENABLE (1 << 0) 1831926deccbSFrançois Tigeot # define DMA_IB_SWAP_ENABLE (1 << 4) 1832926deccbSFrançois Tigeot #define DMA_IB_RPTR 0xd028 1833926deccbSFrançois Tigeot #define DMA_CNTL 0xd02c 1834926deccbSFrançois Tigeot # define TRAP_ENABLE (1 << 0) 1835926deccbSFrançois Tigeot # define SEM_INCOMPLETE_INT_ENABLE (1 << 1) 1836926deccbSFrançois Tigeot # define SEM_WAIT_INT_ENABLE (1 << 2) 1837926deccbSFrançois Tigeot # define DATA_SWAP_ENABLE (1 << 3) 1838926deccbSFrançois Tigeot # define FENCE_SWAP_ENABLE (1 << 4) 1839926deccbSFrançois Tigeot # define CTXEMPTY_INT_ENABLE (1 << 28) 1840926deccbSFrançois Tigeot #define DMA_STATUS_REG 0xd034 1841926deccbSFrançois Tigeot # define DMA_IDLE (1 << 0) 1842926deccbSFrançois Tigeot #define DMA_TILING_CONFIG 0xd0b8 1843926deccbSFrançois Tigeot 18444cd92098Szrj #define DMA_POWER_CNTL 0xd0bc 18454cd92098Szrj # define MEM_POWER_OVERRIDE (1 << 8) 18464cd92098Szrj #define DMA_CLK_CTRL 0xd0c0 18474cd92098Szrj 184857e252bfSMichael Neumann #define DMA_PG 0xd0d4 184957e252bfSMichael Neumann # define PG_CNTL_ENABLE (1 << 0) 185057e252bfSMichael Neumann #define DMA_PGFSM_CONFIG 0xd0d8 185157e252bfSMichael Neumann #define DMA_PGFSM_WRITE 0xd0dc 185257e252bfSMichael Neumann 1853926deccbSFrançois Tigeot #define DMA_PACKET(cmd, b, t, s, n) ((((cmd) & 0xF) << 28) | \ 1854926deccbSFrançois Tigeot (((b) & 0x1) << 26) | \ 1855926deccbSFrançois Tigeot (((t) & 0x1) << 23) | \ 1856926deccbSFrançois Tigeot (((s) & 0x1) << 22) | \ 1857926deccbSFrançois Tigeot (((n) & 0xFFFFF) << 0)) 1858926deccbSFrançois Tigeot 1859926deccbSFrançois Tigeot #define DMA_IB_PACKET(cmd, vmid, n) ((((cmd) & 0xF) << 28) | \ 1860926deccbSFrançois Tigeot (((vmid) & 0xF) << 20) | \ 1861926deccbSFrançois Tigeot (((n) & 0xFFFFF) << 0)) 1862926deccbSFrançois Tigeot 1863926deccbSFrançois Tigeot #define DMA_PTE_PDE_PACKET(n) ((2 << 28) | \ 1864926deccbSFrançois Tigeot (1 << 26) | \ 1865926deccbSFrançois Tigeot (1 << 21) | \ 1866926deccbSFrançois Tigeot (((n) & 0xFFFFF) << 0)) 1867926deccbSFrançois Tigeot 1868926deccbSFrançois Tigeot /* async DMA Packet types */ 1869926deccbSFrançois Tigeot #define DMA_PACKET_WRITE 0x2 1870926deccbSFrançois Tigeot #define DMA_PACKET_COPY 0x3 1871926deccbSFrançois Tigeot #define DMA_PACKET_INDIRECT_BUFFER 0x4 1872926deccbSFrançois Tigeot #define DMA_PACKET_SEMAPHORE 0x5 1873926deccbSFrançois Tigeot #define DMA_PACKET_FENCE 0x6 1874926deccbSFrançois Tigeot #define DMA_PACKET_TRAP 0x7 1875926deccbSFrançois Tigeot #define DMA_PACKET_SRBM_WRITE 0x9 1876926deccbSFrançois Tigeot #define DMA_PACKET_CONSTANT_FILL 0xd 18777dcf36dcSFrançois Tigeot #define DMA_PACKET_POLL_REG_MEM 0xe 1878926deccbSFrançois Tigeot #define DMA_PACKET_NOP 0xf 1879926deccbSFrançois Tigeot 1880c6f73aabSFrançois Tigeot #define VCE_STATUS 0x20004 1881c6f73aabSFrançois Tigeot #define VCE_VCPU_CNTL 0x20014 1882c6f73aabSFrançois Tigeot #define VCE_CLK_EN (1 << 0) 1883c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_OFFSET0 0x20024 1884c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_SIZE0 0x20028 1885c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_OFFSET1 0x2002c 1886c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_SIZE1 0x20030 1887c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_OFFSET2 0x20034 1888c6f73aabSFrançois Tigeot #define VCE_VCPU_CACHE_SIZE2 0x20038 1889c59a5c48SFrançois Tigeot #define VCE_VCPU_SCRATCH7 0x200dc 1890c6f73aabSFrançois Tigeot #define VCE_SOFT_RESET 0x20120 1891c6f73aabSFrançois Tigeot #define VCE_ECPU_SOFT_RESET (1 << 0) 1892c6f73aabSFrançois Tigeot #define VCE_FME_SOFT_RESET (1 << 2) 1893c6f73aabSFrançois Tigeot #define VCE_RB_BASE_LO2 0x2016c 1894c6f73aabSFrançois Tigeot #define VCE_RB_BASE_HI2 0x20170 1895c6f73aabSFrançois Tigeot #define VCE_RB_SIZE2 0x20174 1896c6f73aabSFrançois Tigeot #define VCE_RB_RPTR2 0x20178 1897c6f73aabSFrançois Tigeot #define VCE_RB_WPTR2 0x2017c 1898c6f73aabSFrançois Tigeot #define VCE_RB_BASE_LO 0x20180 1899c6f73aabSFrançois Tigeot #define VCE_RB_BASE_HI 0x20184 1900c6f73aabSFrançois Tigeot #define VCE_RB_SIZE 0x20188 1901c6f73aabSFrançois Tigeot #define VCE_RB_RPTR 0x2018c 1902c6f73aabSFrançois Tigeot #define VCE_RB_WPTR 0x20190 1903c6f73aabSFrançois Tigeot #define VCE_CLOCK_GATING_A 0x202f8 1904c59a5c48SFrançois Tigeot # define CGC_DYN_CLOCK_MODE (1 << 16) 1905c6f73aabSFrançois Tigeot #define VCE_CLOCK_GATING_B 0x202fc 1906c6f73aabSFrançois Tigeot #define VCE_UENC_CLOCK_GATING 0x205bc 1907c6f73aabSFrançois Tigeot #define VCE_UENC_REG_CLOCK_GATING 0x205c0 1908c6f73aabSFrançois Tigeot #define VCE_FW_REG_STATUS 0x20e10 1909c6f73aabSFrançois Tigeot # define VCE_FW_REG_STATUS_BUSY (1 << 0) 1910c6f73aabSFrançois Tigeot # define VCE_FW_REG_STATUS_PASS (1 << 3) 1911c6f73aabSFrançois Tigeot # define VCE_FW_REG_STATUS_DONE (1 << 11) 1912c6f73aabSFrançois Tigeot #define VCE_LMI_FW_START_KEYSEL 0x20e18 1913c6f73aabSFrançois Tigeot #define VCE_LMI_FW_PERIODIC_CTRL 0x20e20 1914c6f73aabSFrançois Tigeot #define VCE_LMI_CTRL2 0x20e74 1915c6f73aabSFrançois Tigeot #define VCE_LMI_CTRL 0x20e98 1916c6f73aabSFrançois Tigeot #define VCE_LMI_VM_CTRL 0x20ea0 1917c6f73aabSFrançois Tigeot #define VCE_LMI_SWAP_CNTL 0x20eb4 1918c6f73aabSFrançois Tigeot #define VCE_LMI_SWAP_CNTL1 0x20eb8 1919c6f73aabSFrançois Tigeot #define VCE_LMI_CACHE_CTRL 0x20ef4 1920c6f73aabSFrançois Tigeot 1921c6f73aabSFrançois Tigeot #define VCE_CMD_NO_OP 0x00000000 1922c6f73aabSFrançois Tigeot #define VCE_CMD_END 0x00000001 1923c6f73aabSFrançois Tigeot #define VCE_CMD_IB 0x00000002 1924c6f73aabSFrançois Tigeot #define VCE_CMD_FENCE 0x00000003 1925c6f73aabSFrançois Tigeot #define VCE_CMD_TRAP 0x00000004 1926c6f73aabSFrançois Tigeot #define VCE_CMD_IB_AUTO 0x00000005 1927c6f73aabSFrançois Tigeot #define VCE_CMD_SEMAPHORE 0x00000006 1928c6f73aabSFrançois Tigeot 1929c59a5c48SFrançois Tigeot /* discrete vce clocks */ 1930c59a5c48SFrançois Tigeot #define CG_VCEPLL_FUNC_CNTL 0xc0030600 1931c59a5c48SFrançois Tigeot # define VCEPLL_RESET_MASK 0x00000001 1932c59a5c48SFrançois Tigeot # define VCEPLL_SLEEP_MASK 0x00000002 1933c59a5c48SFrançois Tigeot # define VCEPLL_BYPASS_EN_MASK 0x00000004 1934c59a5c48SFrançois Tigeot # define VCEPLL_CTLREQ_MASK 0x00000008 1935c59a5c48SFrançois Tigeot # define VCEPLL_VCO_MODE_MASK 0x00000600 1936c59a5c48SFrançois Tigeot # define VCEPLL_REF_DIV_MASK 0x003F0000 1937c59a5c48SFrançois Tigeot # define VCEPLL_CTLACK_MASK 0x40000000 1938c59a5c48SFrançois Tigeot # define VCEPLL_CTLACK2_MASK 0x80000000 1939c59a5c48SFrançois Tigeot #define CG_VCEPLL_FUNC_CNTL_2 0xc0030601 1940c59a5c48SFrançois Tigeot # define VCEPLL_PDIV_A(x) ((x) << 0) 1941c59a5c48SFrançois Tigeot # define VCEPLL_PDIV_A_MASK 0x0000007F 1942c59a5c48SFrançois Tigeot # define VCEPLL_PDIV_B(x) ((x) << 8) 1943c59a5c48SFrançois Tigeot # define VCEPLL_PDIV_B_MASK 0x00007F00 1944c59a5c48SFrançois Tigeot # define EVCLK_SRC_SEL(x) ((x) << 20) 1945c59a5c48SFrançois Tigeot # define EVCLK_SRC_SEL_MASK 0x01F00000 1946c59a5c48SFrançois Tigeot # define ECCLK_SRC_SEL(x) ((x) << 25) 1947c59a5c48SFrançois Tigeot # define ECCLK_SRC_SEL_MASK 0x3E000000 1948c59a5c48SFrançois Tigeot #define CG_VCEPLL_FUNC_CNTL_3 0xc0030602 1949c59a5c48SFrançois Tigeot # define VCEPLL_FB_DIV(x) ((x) << 0) 1950c59a5c48SFrançois Tigeot # define VCEPLL_FB_DIV_MASK 0x01FFFFFF 1951c59a5c48SFrançois Tigeot #define CG_VCEPLL_FUNC_CNTL_4 0xc0030603 1952c59a5c48SFrançois Tigeot #define CG_VCEPLL_FUNC_CNTL_5 0xc0030604 1953c59a5c48SFrançois Tigeot #define CG_VCEPLL_SPREAD_SPECTRUM 0xc0030606 1954c59a5c48SFrançois Tigeot # define VCEPLL_SSEN_MASK 0x00000001 1955c59a5c48SFrançois Tigeot 1956926deccbSFrançois Tigeot #endif 1957