xref: /haiku/headers/private/graphics/radeon_hd/r500_reg.h (revision f8af317470d973fb57fb231b3f21030bbc8137c1)
15cf44ddaSAlexander von Gluck IV /*
25cf44ddaSAlexander von Gluck IV  * Copyright 2008 Advanced Micro Devices, Inc.
35cf44ddaSAlexander von Gluck IV  * Copyright 2008 Red Hat Inc.
45cf44ddaSAlexander von Gluck IV  * Copyright 2009 Jerome Glisse.
55cf44ddaSAlexander von Gluck IV  *
65cf44ddaSAlexander von Gluck IV  * Permission is hereby granted, free of charge, to any person obtaining a
75cf44ddaSAlexander von Gluck IV  * copy of this software and associated documentation files (the "Software"),
85cf44ddaSAlexander von Gluck IV  * to deal in the Software without restriction, including without limitation
95cf44ddaSAlexander von Gluck IV  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
105cf44ddaSAlexander von Gluck IV  * and/or sell copies of the Software, and to permit persons to whom the
115cf44ddaSAlexander von Gluck IV  * Software is furnished to do so, subject to the following conditions:
125cf44ddaSAlexander von Gluck IV  *
135cf44ddaSAlexander von Gluck IV  * The above copyright notice and this permission notice shall be included in
145cf44ddaSAlexander von Gluck IV  * all copies or substantial portions of the Software.
155cf44ddaSAlexander von Gluck IV  *
165cf44ddaSAlexander von Gluck IV  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
175cf44ddaSAlexander von Gluck IV  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
185cf44ddaSAlexander von Gluck IV  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
195cf44ddaSAlexander von Gluck IV  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
205cf44ddaSAlexander von Gluck IV  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
215cf44ddaSAlexander von Gluck IV  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
225cf44ddaSAlexander von Gluck IV  * OTHER DEALINGS IN THE SOFTWARE.
235cf44ddaSAlexander von Gluck IV  *
245cf44ddaSAlexander von Gluck IV  * Authors: Dave Airlie
255cf44ddaSAlexander von Gluck IV  *          Alex Deucher
265cf44ddaSAlexander von Gluck IV  *          Jerome Glisse
275cf44ddaSAlexander von Gluck IV  */
285cf44ddaSAlexander von Gluck IV #ifndef __R500_REG_H__
295cf44ddaSAlexander von Gluck IV #define __R500_REG_H__
30*f8af3174SAlexander von Gluck IV 
315cf44ddaSAlexander von Gluck IV 
325cf44ddaSAlexander von Gluck IV /* pipe config regs */
335cf44ddaSAlexander von Gluck IV #define R300_GA_POLY_MODE				0x4288
345cf44ddaSAlexander von Gluck IV #       define R300_FRONT_PTYPE_POINT                   (0 << 4)
355cf44ddaSAlexander von Gluck IV #       define R300_FRONT_PTYPE_LINE                    (1 << 4)
365cf44ddaSAlexander von Gluck IV #       define R300_FRONT_PTYPE_TRIANGE                 (2 << 4)
375cf44ddaSAlexander von Gluck IV #       define R300_BACK_PTYPE_POINT                    (0 << 7)
385cf44ddaSAlexander von Gluck IV #       define R300_BACK_PTYPE_LINE                     (1 << 7)
395cf44ddaSAlexander von Gluck IV #       define R300_BACK_PTYPE_TRIANGE                  (2 << 7)
405cf44ddaSAlexander von Gluck IV #define R300_GA_ROUND_MODE				0x428c
415cf44ddaSAlexander von Gluck IV #       define R300_GEOMETRY_ROUND_TRUNC                (0 << 0)
425cf44ddaSAlexander von Gluck IV #       define R300_GEOMETRY_ROUND_NEAREST              (1 << 0)
435cf44ddaSAlexander von Gluck IV #       define R300_COLOR_ROUND_TRUNC                   (0 << 2)
445cf44ddaSAlexander von Gluck IV #       define R300_COLOR_ROUND_NEAREST                 (1 << 2)
455cf44ddaSAlexander von Gluck IV #define R300_GB_MSPOS0				        0x4010
465cf44ddaSAlexander von Gluck IV #       define R300_MS_X0_SHIFT                         0
475cf44ddaSAlexander von Gluck IV #       define R300_MS_Y0_SHIFT                         4
485cf44ddaSAlexander von Gluck IV #       define R300_MS_X1_SHIFT                         8
495cf44ddaSAlexander von Gluck IV #       define R300_MS_Y1_SHIFT                         12
505cf44ddaSAlexander von Gluck IV #       define R300_MS_X2_SHIFT                         16
515cf44ddaSAlexander von Gluck IV #       define R300_MS_Y2_SHIFT                         20
525cf44ddaSAlexander von Gluck IV #       define R300_MSBD0_Y_SHIFT                       24
535cf44ddaSAlexander von Gluck IV #       define R300_MSBD0_X_SHIFT                       28
545cf44ddaSAlexander von Gluck IV #define R300_GB_MSPOS1				        0x4014
555cf44ddaSAlexander von Gluck IV #       define R300_MS_X3_SHIFT                         0
565cf44ddaSAlexander von Gluck IV #       define R300_MS_Y3_SHIFT                         4
575cf44ddaSAlexander von Gluck IV #       define R300_MS_X4_SHIFT                         8
585cf44ddaSAlexander von Gluck IV #       define R300_MS_Y4_SHIFT                         12
595cf44ddaSAlexander von Gluck IV #       define R300_MS_X5_SHIFT                         16
605cf44ddaSAlexander von Gluck IV #       define R300_MS_Y5_SHIFT                         20
615cf44ddaSAlexander von Gluck IV #       define R300_MSBD1_SHIFT                         24
625cf44ddaSAlexander von Gluck IV 
635cf44ddaSAlexander von Gluck IV #define R300_GA_ENHANCE				        0x4274
645cf44ddaSAlexander von Gluck IV #       define R300_GA_DEADLOCK_CNTL                    (1 << 0)
655cf44ddaSAlexander von Gluck IV #       define R300_GA_FASTSYNC_CNTL                    (1 << 1)
665cf44ddaSAlexander von Gluck IV #define R300_RB3D_DSTCACHE_CTLSTAT              0x4e4c
675cf44ddaSAlexander von Gluck IV #	define R300_RB3D_DC_FLUSH		(2 << 0)
685cf44ddaSAlexander von Gluck IV #	define R300_RB3D_DC_FREE		(2 << 2)
695cf44ddaSAlexander von Gluck IV #	define R300_RB3D_DC_FINISH		(1 << 4)
705cf44ddaSAlexander von Gluck IV #define R300_RB3D_ZCACHE_CTLSTAT			0x4f18
715cf44ddaSAlexander von Gluck IV #       define R300_ZC_FLUSH                            (1 << 0)
725cf44ddaSAlexander von Gluck IV #       define R300_ZC_FREE                             (1 << 1)
735cf44ddaSAlexander von Gluck IV #       define R300_ZC_FLUSH_ALL                        0x3
745cf44ddaSAlexander von Gluck IV #define R400_GB_PIPE_SELECT             0x402c
755cf44ddaSAlexander von Gluck IV #define R500_DYN_SCLK_PWMEM_PIPE        0x000d /* PLL */
765cf44ddaSAlexander von Gluck IV #define R500_SU_REG_DEST                0x42c8
775cf44ddaSAlexander von Gluck IV #define R300_GB_TILE_CONFIG             0x4018
785cf44ddaSAlexander von Gluck IV #       define R300_ENABLE_TILING       (1 << 0)
795cf44ddaSAlexander von Gluck IV #       define R300_PIPE_COUNT_RV350    (0 << 1)
805cf44ddaSAlexander von Gluck IV #       define R300_PIPE_COUNT_R300     (3 << 1)
815cf44ddaSAlexander von Gluck IV #       define R300_PIPE_COUNT_R420_3P  (6 << 1)
825cf44ddaSAlexander von Gluck IV #       define R300_PIPE_COUNT_R420     (7 << 1)
835cf44ddaSAlexander von Gluck IV #       define R300_TILE_SIZE_8         (0 << 4)
845cf44ddaSAlexander von Gluck IV #       define R300_TILE_SIZE_16        (1 << 4)
855cf44ddaSAlexander von Gluck IV #       define R300_TILE_SIZE_32        (2 << 4)
865cf44ddaSAlexander von Gluck IV #       define R300_SUBPIXEL_1_12       (0 << 16)
875cf44ddaSAlexander von Gluck IV #       define R300_SUBPIXEL_1_16       (1 << 16)
885cf44ddaSAlexander von Gluck IV #define R300_DST_PIPE_CONFIG            0x170c
895cf44ddaSAlexander von Gluck IV #       define R300_PIPE_AUTO_CONFIG    (1 << 31)
905cf44ddaSAlexander von Gluck IV #define R300_RB2D_DSTCACHE_MODE         0x3428
915cf44ddaSAlexander von Gluck IV #       define R300_DC_AUTOFLUSH_ENABLE (1 << 8)
925cf44ddaSAlexander von Gluck IV #       define R300_DC_DC_DISABLE_IGNORE_PE (1 << 17)
935cf44ddaSAlexander von Gluck IV 
945cf44ddaSAlexander von Gluck IV #define RADEON_CP_STAT		0x7C0
955cf44ddaSAlexander von Gluck IV #define RADEON_RBBM_CMDFIFO_ADDR	0xE70
965cf44ddaSAlexander von Gluck IV #define RADEON_RBBM_CMDFIFO_DATA	0xE74
975cf44ddaSAlexander von Gluck IV #define RADEON_ISYNC_CNTL		0x1724
985cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_ANY2D_IDLE3D	(1 << 0)
995cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_ANY3D_IDLE2D	(1 << 1)
1005cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_TRIG2D_IDLE3D	(1 << 2)
1015cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_TRIG3D_IDLE2D	(1 << 3)
1025cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_WAIT_IDLEGUI	(1 << 4)
1035cf44ddaSAlexander von Gluck IV #	define RADEON_ISYNC_CPSCRATCH_IDLEGUI	(1 << 5)
1045cf44ddaSAlexander von Gluck IV 
1055cf44ddaSAlexander von Gluck IV #define RS480_NB_MC_INDEX               0x168
1065cf44ddaSAlexander von Gluck IV #	define RS480_NB_MC_IND_WR_EN	(1 << 8)
1075cf44ddaSAlexander von Gluck IV #define RS480_NB_MC_DATA                0x16c
1085cf44ddaSAlexander von Gluck IV 
1095cf44ddaSAlexander von Gluck IV /*
1105cf44ddaSAlexander von Gluck IV  * RS690
1115cf44ddaSAlexander von Gluck IV  */
1125cf44ddaSAlexander von Gluck IV #define RS690_MCCFG_FB_LOCATION		0x100
1135cf44ddaSAlexander von Gluck IV #define		RS690_MC_FB_START_MASK		0x0000FFFF
1145cf44ddaSAlexander von Gluck IV #define		RS690_MC_FB_START_SHIFT		0
1155cf44ddaSAlexander von Gluck IV #define		RS690_MC_FB_TOP_MASK		0xFFFF0000
1165cf44ddaSAlexander von Gluck IV #define		RS690_MC_FB_TOP_SHIFT		16
1175cf44ddaSAlexander von Gluck IV #define RS690_MCCFG_AGP_LOCATION	0x101
1185cf44ddaSAlexander von Gluck IV #define		RS690_MC_AGP_START_MASK		0x0000FFFF
1195cf44ddaSAlexander von Gluck IV #define		RS690_MC_AGP_START_SHIFT	0
1205cf44ddaSAlexander von Gluck IV #define		RS690_MC_AGP_TOP_MASK		0xFFFF0000
1215cf44ddaSAlexander von Gluck IV #define		RS690_MC_AGP_TOP_SHIFT		16
1225cf44ddaSAlexander von Gluck IV #define RS690_MCCFG_AGP_BASE		0x102
1235cf44ddaSAlexander von Gluck IV #define RS690_MCCFG_AGP_BASE_2		0x103
1245cf44ddaSAlexander von Gluck IV #define RS690_MC_INIT_MISC_LAT_TIMER            0x104
1255cf44ddaSAlexander von Gluck IV #define RS690_HDP_FB_LOCATION		0x0134
1265cf44ddaSAlexander von Gluck IV #define RS690_MC_INDEX				0x78
1275cf44ddaSAlexander von Gluck IV #	define RS690_MC_INDEX_MASK		0x1ff
1285cf44ddaSAlexander von Gluck IV #	define RS690_MC_INDEX_WR_EN		(1 << 9)
1295cf44ddaSAlexander von Gluck IV #	define RS690_MC_INDEX_WR_ACK		0x7f
1305cf44ddaSAlexander von Gluck IV #define RS690_MC_DATA				0x7c
1315cf44ddaSAlexander von Gluck IV #define RS690_MC_STATUS                         0x90
1325cf44ddaSAlexander von Gluck IV #define RS690_MC_STATUS_IDLE                    (1 << 0)
1335cf44ddaSAlexander von Gluck IV #define RS480_AGP_BASE_2		0x0164
1345cf44ddaSAlexander von Gluck IV #define RS480_MC_MISC_CNTL              0x18
1355cf44ddaSAlexander von Gluck IV #	define RS480_DISABLE_GTW	(1 << 1)
1365cf44ddaSAlexander von Gluck IV #	define RS480_GART_INDEX_REG_EN	(1 << 12)
1375cf44ddaSAlexander von Gluck IV #	define RS690_BLOCK_GFX_D3_EN	(1 << 14)
1385cf44ddaSAlexander von Gluck IV #define RS480_GART_FEATURE_ID           0x2b
1395cf44ddaSAlexander von Gluck IV #	define RS480_HANG_EN	        (1 << 11)
1405cf44ddaSAlexander von Gluck IV #	define RS480_TLB_ENABLE	        (1 << 18)
1415cf44ddaSAlexander von Gluck IV #	define RS480_P2P_ENABLE	        (1 << 19)
1425cf44ddaSAlexander von Gluck IV #	define RS480_GTW_LAC_EN	        (1 << 25)
1435cf44ddaSAlexander von Gluck IV #	define RS480_2LEVEL_GART	(0 << 30)
1445cf44ddaSAlexander von Gluck IV #	define RS480_1LEVEL_GART	(1 << 30)
1455cf44ddaSAlexander von Gluck IV #	define RS480_PDC_EN	        (1 << 31)
1465cf44ddaSAlexander von Gluck IV #define RS480_GART_BASE                 0x2c
1475cf44ddaSAlexander von Gluck IV #define RS480_GART_CACHE_CNTRL          0x2e
1485cf44ddaSAlexander von Gluck IV #	define RS480_GART_CACHE_INVALIDATE (1 << 0) /* wait for it to clear */
1495cf44ddaSAlexander von Gluck IV #define RS480_AGP_ADDRESS_SPACE_SIZE    0x38
1505cf44ddaSAlexander von Gluck IV #	define RS480_GART_EN	        (1 << 0)
1515cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_32MB	(0 << 1)
1525cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_64MB	(1 << 1)
1535cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_128MB	(2 << 1)
1545cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_256MB	(3 << 1)
1555cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_512MB	(4 << 1)
1565cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_1GB	(5 << 1)
1575cf44ddaSAlexander von Gluck IV #	define RS480_VA_SIZE_2GB	(6 << 1)
1585cf44ddaSAlexander von Gluck IV #define RS480_AGP_MODE_CNTL             0x39
1595cf44ddaSAlexander von Gluck IV #	define RS480_POST_GART_Q_SIZE	(1 << 18)
1605cf44ddaSAlexander von Gluck IV #	define RS480_NONGART_SNOOP	(1 << 19)
1615cf44ddaSAlexander von Gluck IV #	define RS480_AGP_RD_BUF_SIZE	(1 << 20)
1625cf44ddaSAlexander von Gluck IV #	define RS480_REQ_TYPE_SNOOP_SHIFT 22
1635cf44ddaSAlexander von Gluck IV #	define RS480_REQ_TYPE_SNOOP_MASK  0x3
1645cf44ddaSAlexander von Gluck IV #	define RS480_REQ_TYPE_SNOOP_DIS	(1 << 24)
1655cf44ddaSAlexander von Gluck IV 
1665cf44ddaSAlexander von Gluck IV #define RS690_AIC_CTRL_SCRATCH		0x3A
1675cf44ddaSAlexander von Gluck IV #	define RS690_DIS_OUT_OF_PCI_GART_ACCESS	(1 << 1)
1685cf44ddaSAlexander von Gluck IV 
1695cf44ddaSAlexander von Gluck IV /*
1705cf44ddaSAlexander von Gluck IV  * RS600
1715cf44ddaSAlexander von Gluck IV  */
1725cf44ddaSAlexander von Gluck IV #define RS600_MC_STATUS                         0x0
1735cf44ddaSAlexander von Gluck IV #define RS600_MC_STATUS_IDLE                    (1 << 0)
1745cf44ddaSAlexander von Gluck IV #define RS600_MC_INDEX                          0x70
1755cf44ddaSAlexander von Gluck IV #       define RS600_MC_ADDR_MASK               0xffff
1765cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_SEQ_RBS_0           (1 << 16)
1775cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_SEQ_RBS_1           (1 << 17)
1785cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_SEQ_RBS_2           (1 << 18)
1795cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_SEQ_RBS_3           (1 << 19)
1805cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_AIC_RBS             (1 << 20)
1815cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_CITF_ARB0           (1 << 21)
1825cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_CITF_ARB1           (1 << 22)
1835cf44ddaSAlexander von Gluck IV #       define RS600_MC_IND_WR_EN               (1 << 23)
1845cf44ddaSAlexander von Gluck IV #define RS600_MC_DATA                           0x74
1855cf44ddaSAlexander von Gluck IV #define RS600_MC_STATUS                         0x0
1865cf44ddaSAlexander von Gluck IV #       define RS600_MC_IDLE                    (1 << 1)
1875cf44ddaSAlexander von Gluck IV #define RS600_MC_FB_LOCATION                    0x4
1885cf44ddaSAlexander von Gluck IV #define		RS600_MC_FB_START_MASK		0x0000FFFF
1895cf44ddaSAlexander von Gluck IV #define		RS600_MC_FB_START_SHIFT		0
1905cf44ddaSAlexander von Gluck IV #define		RS600_MC_FB_TOP_MASK		0xFFFF0000
1915cf44ddaSAlexander von Gluck IV #define		RS600_MC_FB_TOP_SHIFT		16
1925cf44ddaSAlexander von Gluck IV #define RS600_MC_AGP_LOCATION                   0x5
1935cf44ddaSAlexander von Gluck IV #define		RS600_MC_AGP_START_MASK		0x0000FFFF
1945cf44ddaSAlexander von Gluck IV #define		RS600_MC_AGP_START_SHIFT	0
1955cf44ddaSAlexander von Gluck IV #define		RS600_MC_AGP_TOP_MASK		0xFFFF0000
1965cf44ddaSAlexander von Gluck IV #define		RS600_MC_AGP_TOP_SHIFT		16
1975cf44ddaSAlexander von Gluck IV #define RS600_MC_AGP_BASE                          0x6
1985cf44ddaSAlexander von Gluck IV #define RS600_MC_AGP_BASE_2                        0x7
1995cf44ddaSAlexander von Gluck IV #define RS600_MC_CNTL1                          0x9
2005cf44ddaSAlexander von Gluck IV #       define RS600_ENABLE_PAGE_TABLES         (1 << 26)
2015cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CNTL                       0x100
2025cf44ddaSAlexander von Gluck IV #       define RS600_ENABLE_PT                  (1 << 0)
2035cf44ddaSAlexander von Gluck IV #       define RS600_EFFECTIVE_L2_CACHE_SIZE(x) ((x) << 15)
2045cf44ddaSAlexander von Gluck IV #       define RS600_EFFECTIVE_L2_QUEUE_SIZE(x) ((x) << 21)
2055cf44ddaSAlexander von Gluck IV #       define RS600_INVALIDATE_ALL_L1_TLBS     (1 << 28)
2065cf44ddaSAlexander von Gluck IV #       define RS600_INVALIDATE_L2_CACHE        (1 << 29)
2075cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CONTEXT0_CNTL              0x102
2085cf44ddaSAlexander von Gluck IV #       define RS600_ENABLE_PAGE_TABLE          (1 << 0)
2095cf44ddaSAlexander von Gluck IV #       define RS600_PAGE_TABLE_TYPE_FLAT       (0 << 1)
2105cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_SYSTEM_APERTURE_LOW_ADDR   0x112
2115cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_SYSTEM_APERTURE_HIGH_ADDR  0x114
2125cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CONTEXT0_DEFAULT_READ_ADDR 0x11c
2135cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CONTEXT0_FLAT_BASE_ADDR    0x12c
2145cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CONTEXT0_FLAT_START_ADDR   0x13c
2155cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CONTEXT0_FLAT_END_ADDR     0x14c
2165cf44ddaSAlexander von Gluck IV #define RS600_MC_PT0_CLIENT0_CNTL               0x16c
2175cf44ddaSAlexander von Gluck IV #       define RS600_ENABLE_TRANSLATION_MODE_OVERRIDE       (1 << 0)
2185cf44ddaSAlexander von Gluck IV #       define RS600_TRANSLATION_MODE_OVERRIDE              (1 << 1)
2195cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_ACCESS_MODE_MASK                (3 << 8)
2205cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_ACCESS_MODE_PA_ONLY             (0 << 8)
2215cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_ACCESS_MODE_USE_SYS_MAP         (1 << 8)
2225cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_ACCESS_MODE_IN_SYS              (2 << 8)
2235cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_ACCESS_MODE_NOT_IN_SYS          (3 << 8)
2245cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_APERTURE_UNMAPPED_ACCESS_PASSTHROUGH        (0 << 10)
2255cf44ddaSAlexander von Gluck IV #       define RS600_SYSTEM_APERTURE_UNMAPPED_ACCESS_DEFAULT_PAGE       (1 << 10)
2265cf44ddaSAlexander von Gluck IV #       define RS600_EFFECTIVE_L1_CACHE_SIZE(x) ((x) << 11)
2275cf44ddaSAlexander von Gluck IV #       define RS600_ENABLE_FRAGMENT_PROCESSING (1 << 14)
2285cf44ddaSAlexander von Gluck IV #       define RS600_EFFECTIVE_L1_QUEUE_SIZE(x) ((x) << 15)
2295cf44ddaSAlexander von Gluck IV #       define RS600_INVALIDATE_L1_TLB          (1 << 20)
2305cf44ddaSAlexander von Gluck IV /* rs600/rs690/rs740 */
2315cf44ddaSAlexander von Gluck IV #	define RS600_BUS_MASTER_DIS		(1 << 14)
2325cf44ddaSAlexander von Gluck IV #	define RS600_MSI_REARM		        (1 << 20)
2335cf44ddaSAlexander von Gluck IV /* see RS400_MSI_REARM in AIC_CNTL for rs480 */
2345cf44ddaSAlexander von Gluck IV 
2355cf44ddaSAlexander von Gluck IV 
2365cf44ddaSAlexander von Gluck IV 
2375cf44ddaSAlexander von Gluck IV #define RV515_MC_FB_LOCATION		0x01
2385cf44ddaSAlexander von Gluck IV #define		RV515_MC_FB_START_MASK		0x0000FFFF
2395cf44ddaSAlexander von Gluck IV #define		RV515_MC_FB_START_SHIFT		0
2405cf44ddaSAlexander von Gluck IV #define		RV515_MC_FB_TOP_MASK		0xFFFF0000
2415cf44ddaSAlexander von Gluck IV #define		RV515_MC_FB_TOP_SHIFT		16
2425cf44ddaSAlexander von Gluck IV #define RV515_MC_AGP_LOCATION		0x02
2435cf44ddaSAlexander von Gluck IV #define		RV515_MC_AGP_START_MASK		0x0000FFFF
2445cf44ddaSAlexander von Gluck IV #define		RV515_MC_AGP_START_SHIFT	0
2455cf44ddaSAlexander von Gluck IV #define		RV515_MC_AGP_TOP_MASK		0xFFFF0000
2465cf44ddaSAlexander von Gluck IV #define		RV515_MC_AGP_TOP_SHIFT		16
2475cf44ddaSAlexander von Gluck IV #define RV515_MC_AGP_BASE		0x03
2485cf44ddaSAlexander von Gluck IV #define RV515_MC_AGP_BASE_2		0x04
2495cf44ddaSAlexander von Gluck IV 
2505cf44ddaSAlexander von Gluck IV #define R520_MC_FB_LOCATION		0x04
2515cf44ddaSAlexander von Gluck IV #define		R520_MC_FB_START_MASK		0x0000FFFF
2525cf44ddaSAlexander von Gluck IV #define		R520_MC_FB_START_SHIFT		0
2535cf44ddaSAlexander von Gluck IV #define		R520_MC_FB_TOP_MASK		0xFFFF0000
2545cf44ddaSAlexander von Gluck IV #define		R520_MC_FB_TOP_SHIFT		16
2555cf44ddaSAlexander von Gluck IV #define R520_MC_AGP_LOCATION		0x05
2565cf44ddaSAlexander von Gluck IV #define		R520_MC_AGP_START_MASK		0x0000FFFF
2575cf44ddaSAlexander von Gluck IV #define		R520_MC_AGP_START_SHIFT		0
2585cf44ddaSAlexander von Gluck IV #define		R520_MC_AGP_TOP_MASK		0xFFFF0000
2595cf44ddaSAlexander von Gluck IV #define		R520_MC_AGP_TOP_SHIFT		16
2605cf44ddaSAlexander von Gluck IV #define R520_MC_AGP_BASE		0x06
2615cf44ddaSAlexander von Gluck IV #define R520_MC_AGP_BASE_2		0x07
2625cf44ddaSAlexander von Gluck IV 
2635cf44ddaSAlexander von Gluck IV 
2645cf44ddaSAlexander von Gluck IV #define R520_MC_STATUS 0x00
2655cf44ddaSAlexander von Gluck IV #define R520_MC_STATUS_IDLE (1<<1)
2665cf44ddaSAlexander von Gluck IV #define RV515_MC_STATUS 0x08
2675cf44ddaSAlexander von Gluck IV #define RV515_MC_STATUS_IDLE (1<<4)
2685cf44ddaSAlexander von Gluck IV #define RV515_MC_INIT_MISC_LAT_TIMER            0x09
2695cf44ddaSAlexander von Gluck IV #define R520_MC_IND_INDEX 0x70
2705cf44ddaSAlexander von Gluck IV #define R520_MC_IND_WR_EN (1 << 24)
2715cf44ddaSAlexander von Gluck IV #define R520_MC_IND_DATA  0x74
2725cf44ddaSAlexander von Gluck IV 
2735cf44ddaSAlexander von Gluck IV #define RV515_MC_CNTL          0x5
2745cf44ddaSAlexander von Gluck IV #	define RV515_MEM_NUM_CHANNELS_MASK  0x3
2755cf44ddaSAlexander von Gluck IV #define R520_MC_CNTL0          0x8
2765cf44ddaSAlexander von Gluck IV #	define R520_MEM_NUM_CHANNELS_MASK  (0x3 << 24)
2775cf44ddaSAlexander von Gluck IV #	define R520_MEM_NUM_CHANNELS_SHIFT  24
2785cf44ddaSAlexander von Gluck IV #	define R520_MC_CHANNEL_SIZE  (1 << 23)
2795cf44ddaSAlexander von Gluck IV 
2805cf44ddaSAlexander von Gluck IV 
2815cf44ddaSAlexander von Gluck IV #endif