Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * RadeonHD R6xx, R7xx Register documentation
  3.  *
  4.  * Copyright (C) 2008-2009  Advanced Micro Devices, Inc.
  5.  * Copyright (C) 2008-2009  Matthias Hopf
  6.  *
  7.  * Permission is hereby granted, free of charge, to any person obtaining a
  8.  * copy of this software and associated documentation files (the "Software"),
  9.  * to deal in the Software without restriction, including without limitation
  10.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  11.  * and/or sell copies of the Software, and to permit persons to whom the
  12.  * Software is furnished to do so, subject to the following conditions:
  13.  *
  14.  * The above copyright notice and this permission notice shall be included
  15.  * in all copies or substantial portions of the Software.
  16.  *
  17.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  18.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  20.  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  21.  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  22.  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  23.  */
  24.  
  25. #ifndef _R600_REG_R6xx_H_
  26. #define _R600_REG_R6xx_H_
  27.  
  28. /*
  29.  * Registers for R6xx chips that are not documented yet
  30.  */
  31.  
  32. enum {
  33.  
  34.     MM_INDEX                                              = 0x0000,
  35.     MM_DATA                                               = 0x0004,
  36.  
  37.     SRBM_STATUS                                           = 0x0e50,
  38.         RLC_RQ_PENDING_bit                                = 1 << 3,
  39.         RCU_RQ_PENDING_bit                                = 1 << 4,
  40.         GRBM_RQ_PENDING_bit                               = 1 << 5,
  41.         HI_RQ_PENDING_bit                                 = 1 << 6,
  42.         IO_EXTERN_SIGNAL_bit                              = 1 << 7,
  43.         VMC_BUSY_bit                                      = 1 << 8,
  44.         MCB_BUSY_bit                                      = 1 << 9,
  45.         MCDZ_BUSY_bit                                     = 1 << 10,
  46.         MCDY_BUSY_bit                                     = 1 << 11,
  47.         MCDX_BUSY_bit                                     = 1 << 12,
  48.         MCDW_BUSY_bit                                     = 1 << 13,
  49.         SEM_BUSY_bit                                      = 1 << 14,
  50.         SRBM_STATUS__RLC_BUSY_bit                         = 1 << 15,
  51.         PDMA_BUSY_bit                                     = 1 << 16,
  52.         IH_BUSY_bit                                       = 1 << 17,
  53.         CSC_BUSY_bit                                      = 1 << 20,
  54.         CMC7_BUSY_bit                                     = 1 << 21,
  55.         CMC6_BUSY_bit                                     = 1 << 22,
  56.         CMC5_BUSY_bit                                     = 1 << 23,
  57.         CMC4_BUSY_bit                                     = 1 << 24,
  58.         CMC3_BUSY_bit                                     = 1 << 25,
  59.         CMC2_BUSY_bit                                     = 1 << 26,
  60.         CMC1_BUSY_bit                                     = 1 << 27,
  61.         CMC0_BUSY_bit                                     = 1 << 28,
  62.         BIF_BUSY_bit                                      = 1 << 29,
  63.         IDCT_BUSY_bit                                     = 1 << 30,
  64.  
  65.     SRBM_READ_ERROR                                       = 0x0e98,
  66.         READ_ADDRESS_mask                                 = 0xffff << 2,
  67.         READ_ADDRESS_shift                                = 2,
  68.         READ_REQUESTER_HI_bit                             = 1 << 24,
  69.         READ_REQUESTER_GRBM_bit                           = 1 << 25,
  70.         READ_REQUESTER_RCU_bit                            = 1 << 26,
  71.         READ_REQUESTER_RLC_bit                            = 1 << 27,
  72.         READ_ERROR_bit                                    = 1 << 31,
  73.  
  74.     SRBM_INT_STATUS                                       = 0x0ea4,
  75.         RDERR_INT_STAT_bit                                = 1 << 0,
  76.         GFX_CNTX_SWITCH_INT_STAT_bit                      = 1 << 1,
  77.     SRBM_INT_ACK                                          = 0x0ea8,
  78.         RDERR_INT_ACK_bit                                 = 1 << 0,
  79.         GFX_CNTX_SWITCH_INT_ACK_bit                       = 1 << 1,
  80.  
  81.     /* R6XX_MC_VM_FB_LOCATION                             = 0x2180, */
  82.  
  83.     VENDOR_DEVICE_ID                                      = 0x4000,
  84.  
  85.     HDP_MEM_COHERENCY_FLUSH_CNTL                          = 0x5480,
  86.  
  87.     /* D1GRPH_PRIMARY_SURFACE_ADDRESS                     = 0x6110, */
  88.     /* D1GRPH_PITCH                                       = 0x6120, */
  89.     /* D1GRPH_Y_END                                       = 0x6138, */
  90.  
  91.     GRBM_STATUS                                           = 0x8010,
  92.         R600_CMDFIFO_AVAIL_mask                           = 0x1f << 0,
  93.         R700_CMDFIFO_AVAIL_mask                           = 0xf << 0,
  94.         CMDFIFO_AVAIL_shift                               = 0,
  95.         SRBM_RQ_PENDING_bit                               = 1 << 5,
  96.         CP_RQ_PENDING_bit                                 = 1 << 6,
  97.         CF_RQ_PENDING_bit                                 = 1 << 7,
  98.         PF_RQ_PENDING_bit                                 = 1 << 8,
  99.         GRBM_EE_BUSY_bit                                  = 1 << 10,
  100.         GRBM_STATUS__VC_BUSY_bit                          = 1 << 11,
  101.         DB03_CLEAN_bit                                    = 1 << 12,
  102.         CB03_CLEAN_bit                                    = 1 << 13,
  103.         VGT_BUSY_NO_DMA_bit                               = 1 << 16,
  104.         GRBM_STATUS__VGT_BUSY_bit                         = 1 << 17,
  105.         TA03_BUSY_bit                                     = 1 << 18,
  106.         GRBM_STATUS__TC_BUSY_bit                          = 1 << 19,
  107.         SX_BUSY_bit                                       = 1 << 20,
  108.         SH_BUSY_bit                                       = 1 << 21,
  109.         SPI03_BUSY_bit                                    = 1 << 22,
  110.         SMX_BUSY_bit                                      = 1 << 23,
  111.         SC_BUSY_bit                                       = 1 << 24,
  112.         PA_BUSY_bit                                       = 1 << 25,
  113.         DB03_BUSY_bit                                     = 1 << 26,
  114.         CR_BUSY_bit                                       = 1 << 27,
  115.         CP_COHERENCY_BUSY_bit                             = 1 << 28,
  116.         GRBM_STATUS__CP_BUSY_bit                          = 1 << 29,
  117.         CB03_BUSY_bit                                     = 1 << 30,
  118.         GUI_ACTIVE_bit                                    = 1 << 31,
  119.     GRBM_STATUS2                                          = 0x8014,
  120.         CR_CLEAN_bit                                      = 1 << 0,
  121.         SMX_CLEAN_bit                                     = 1 << 1,
  122.         SPI0_BUSY_bit                                     = 1 << 8,
  123.         SPI1_BUSY_bit                                     = 1 << 9,
  124.         SPI2_BUSY_bit                                     = 1 << 10,
  125.         SPI3_BUSY_bit                                     = 1 << 11,
  126.         TA0_BUSY_bit                                      = 1 << 12,
  127.         TA1_BUSY_bit                                      = 1 << 13,
  128.         TA2_BUSY_bit                                      = 1 << 14,
  129.         TA3_BUSY_bit                                      = 1 << 15,
  130.         DB0_BUSY_bit                                      = 1 << 16,
  131.         DB1_BUSY_bit                                      = 1 << 17,
  132.         DB2_BUSY_bit                                      = 1 << 18,
  133.         DB3_BUSY_bit                                      = 1 << 19,
  134.         CB0_BUSY_bit                                      = 1 << 20,
  135.         CB1_BUSY_bit                                      = 1 << 21,
  136.         CB2_BUSY_bit                                      = 1 << 22,
  137.         CB3_BUSY_bit                                      = 1 << 23,
  138.     GRBM_SOFT_RESET                                       = 0x8020,
  139.         SOFT_RESET_CP_bit                                 = 1 << 0,
  140.         SOFT_RESET_CB_bit                                 = 1 << 1,
  141.         SOFT_RESET_CR_bit                                 = 1 << 2,
  142.         SOFT_RESET_DB_bit                                 = 1 << 3,
  143.         SOFT_RESET_PA_bit                                 = 1 << 5,
  144.         SOFT_RESET_SC_bit                                 = 1 << 6,
  145.         SOFT_RESET_SMX_bit                                = 1 << 7,
  146.         SOFT_RESET_SPI_bit                                = 1 << 8,
  147.         SOFT_RESET_SH_bit                                 = 1 << 9,
  148.         SOFT_RESET_SX_bit                                 = 1 << 10,
  149.         SOFT_RESET_TC_bit                                 = 1 << 11,
  150.         SOFT_RESET_TA_bit                                 = 1 << 12,
  151.         SOFT_RESET_VC_bit                                 = 1 << 13,
  152.         SOFT_RESET_VGT_bit                                = 1 << 14,
  153.         SOFT_RESET_GRBM_GCA_bit                           = 1 << 15,
  154.  
  155.     WAIT_UNTIL                                            = 0x8040,
  156.         WAIT_CP_DMA_IDLE_bit                              = 1 << 8,
  157.         WAIT_CMDFIFO_bit                                  = 1 << 10,
  158.         WAIT_2D_IDLE_bit                                  = 1 << 14,
  159.         WAIT_3D_IDLE_bit                                  = 1 << 15,
  160.         WAIT_2D_IDLECLEAN_bit                             = 1 << 16,
  161.         WAIT_3D_IDLECLEAN_bit                             = 1 << 17,
  162.         WAIT_EXTERN_SIG_bit                               = 1 << 19,
  163.         CMDFIFO_ENTRIES_mask                              = 0x1f << 20,
  164.         CMDFIFO_ENTRIES_shift                             = 20,
  165.  
  166.     GRBM_READ_ERROR                                       = 0x8058,
  167. /*      READ_ADDRESS_mask                                 = 0xffff << 2, */
  168. /*      READ_ADDRESS_shift                                = 2, */
  169.         READ_REQUESTER_SRBM_bit                           = 1 << 28,
  170.         READ_REQUESTER_CP_bit                             = 1 << 29,
  171.         READ_REQUESTER_WU_POLL_bit                        = 1 << 30,
  172. /*      READ_ERROR_bit                                    = 1 << 31, */
  173.  
  174.     SCRATCH_REG0                                          = 0x8500,
  175.     SCRATCH_REG1                                          = 0x8504,
  176.     SCRATCH_REG2                                          = 0x8508,
  177.     SCRATCH_REG3                                          = 0x850c,
  178.     SCRATCH_REG4                                          = 0x8510,
  179.     SCRATCH_REG5                                          = 0x8514,
  180.     SCRATCH_REG6                                          = 0x8518,
  181.     SCRATCH_REG7                                          = 0x851c,
  182.     SCRATCH_UMSK                                          = 0x8540,
  183.     SCRATCH_ADDR                                          = 0x8544,
  184.  
  185.     CP_COHER_CNTL                                         = 0x85f0,
  186.         DEST_BASE_0_ENA_bit                               = 1 << 0,
  187.         DEST_BASE_1_ENA_bit                               = 1 << 1,
  188.         SO0_DEST_BASE_ENA_bit                             = 1 << 2,
  189.         SO1_DEST_BASE_ENA_bit                             = 1 << 3,
  190.         SO2_DEST_BASE_ENA_bit                             = 1 << 4,
  191.         SO3_DEST_BASE_ENA_bit                             = 1 << 5,
  192.         CB0_DEST_BASE_ENA_bit                             = 1 << 6,
  193.         CB1_DEST_BASE_ENA_bit                             = 1 << 7,
  194.         CB2_DEST_BASE_ENA_bit                             = 1 << 8,
  195.         CB3_DEST_BASE_ENA_bit                             = 1 << 9,
  196.         CB4_DEST_BASE_ENA_bit                             = 1 << 10,
  197.         CB5_DEST_BASE_ENA_bit                             = 1 << 11,
  198.         CB6_DEST_BASE_ENA_bit                             = 1 << 12,
  199.         CB7_DEST_BASE_ENA_bit                             = 1 << 13,
  200.         DB_DEST_BASE_ENA_bit                              = 1 << 14,
  201.         CR_DEST_BASE_ENA_bit                              = 1 << 15,
  202.         TC_ACTION_ENA_bit                                 = 1 << 23,
  203.         VC_ACTION_ENA_bit                                 = 1 << 24,
  204.         CB_ACTION_ENA_bit                                 = 1 << 25,
  205.         DB_ACTION_ENA_bit                                 = 1 << 26,
  206.         SH_ACTION_ENA_bit                                 = 1 << 27,
  207.         SMX_ACTION_ENA_bit                                = 1 << 28,
  208.         CR0_ACTION_ENA_bit                                = 1 << 29,
  209.         CR1_ACTION_ENA_bit                                = 1 << 30,
  210.         CR2_ACTION_ENA_bit                                = 1 << 31,
  211.     CP_COHER_SIZE                                         = 0x85f4,
  212.     CP_COHER_BASE                                         = 0x85f8,
  213.     CP_COHER_STATUS                                       = 0x85fc,
  214.         MATCHING_GFX_CNTX_mask                            = 0xff << 0,
  215.         MATCHING_GFX_CNTX_shift                           = 0,
  216.         MATCHING_CR_CNTX_mask                             = 0xffff << 8,
  217.         MATCHING_CR_CNTX_shift                            = 8,
  218.         STATUS_bit                                        = 1 << 31,
  219.  
  220.     CP_STALLED_STAT1                                      = 0x8674,
  221.         RBIU_TO_DMA_NOT_RDY_TO_RCV_bit                    = 1 << 0,
  222.         RBIU_TO_IBS_NOT_RDY_TO_RCV_bit                    = 1 << 1,
  223.         RBIU_TO_SEM_NOT_RDY_TO_RCV_bit                    = 1 << 2,
  224.         RBIU_TO_2DREGS_NOT_RDY_TO_RCV_bit                 = 1 << 3,
  225.         RBIU_TO_MEMWR_NOT_RDY_TO_RCV_bit                  = 1 << 4,
  226.         RBIU_TO_MEMRD_NOT_RDY_TO_RCV_bit                  = 1 << 5,
  227.         RBIU_TO_EOPD_NOT_RDY_TO_RCV_bit                   = 1 << 6,
  228.         RBIU_TO_RECT_NOT_RDY_TO_RCV_bit                   = 1 << 7,
  229.         RBIU_TO_STRMO_NOT_RDY_TO_RCV_bit                  = 1 << 8,
  230.         RBIU_TO_PSTAT_NOT_RDY_TO_RCV_bit                  = 1 << 9,
  231.         MIU_WAITING_ON_RDREQ_FREE_bit                     = 1 << 16,
  232.         MIU_WAITING_ON_WRREQ_FREE_bit                     = 1 << 17,
  233.         MIU_NEEDS_AVAIL_WRREQ_PHASE_bit                   = 1 << 18,
  234.         RCIU_WAITING_ON_GRBM_FREE_bit                     = 1 << 24,
  235.         RCIU_WAITING_ON_VGT_FREE_bit                      = 1 << 25,
  236.         RCIU_STALLED_ON_ME_READ_bit                       = 1 << 26,
  237.         RCIU_STALLED_ON_DMA_READ_bit                      = 1 << 27,
  238.         RCIU_HALTED_BY_REG_VIOLATION_bit                  = 1 << 28,
  239.     CP_STALLED_STAT2                                      = 0x8678,
  240.         PFP_TO_CSF_NOT_RDY_TO_RCV_bit                     = 1 << 0,
  241.         PFP_TO_MEQ_NOT_RDY_TO_RCV_bit                     = 1 << 1,
  242.         PFP_TO_VGT_NOT_RDY_TO_RCV_bit                     = 1 << 2,
  243.         PFP_HALTED_BY_INSTR_VIOLATION_bit                 = 1 << 3,
  244.         MULTIPASS_IB_PENDING_IN_PFP_bit                   = 1 << 4,
  245.         ME_BRUSH_WC_NOT_RDY_TO_RCV_bit                    = 1 << 8,
  246.         ME_STALLED_ON_BRUSH_LOGIC_bit                     = 1 << 9,
  247.         CR_CNTX_NOT_AVAIL_TO_ME_bit                       = 1 << 10,
  248.         GFX_CNTX_NOT_AVAIL_TO_ME_bit                      = 1 << 11,
  249.         ME_RCIU_NOT_RDY_TO_RCV_bit                        = 1 << 12,
  250.         ME_TO_CONST_NOT_RDY_TO_RCV_bit                    = 1 << 13,
  251.         ME_WAITING_DATA_FROM_PFP_bit                      = 1 << 14,
  252.         ME_WAITING_ON_PARTIAL_FLUSH_bit                   = 1 << 15,
  253.         RECT_FIFO_NEEDS_CR_RECT_DONE_bit                  = 1 << 16,
  254.         RECT_FIFO_NEEDS_WR_CONFIRM_bit                    = 1 << 17,
  255.         EOPD_FIFO_NEEDS_SC_EOP_DONE_bit                   = 1 << 18,
  256.         EOPD_FIFO_NEEDS_SMX_EOP_DONE_bit                  = 1 << 19,
  257.         EOPD_FIFO_NEEDS_WR_CONFIRM_bit                    = 1 << 20,
  258.         EOPD_FIFO_NEEDS_SIGNAL_SEM_bit                    = 1 << 21,
  259.         SO_NUMPRIM_FIFO_NEEDS_SOADDR_bit                  = 1 << 22,
  260.         SO_NUMPRIM_FIFO_NEEDS_NUMPRIM_bit                 = 1 << 23,
  261.         PIPE_STATS_FIFO_NEEDS_SAMPLE_bit                  = 1 << 24,
  262.         SURF_SYNC_NEEDS_IDLE_CNTXS_bit                    = 1 << 30,
  263.         SURF_SYNC_NEEDS_ALL_CLEAN_bit                     = 1 << 31,
  264.     CP_BUSY_STAT                                          = 0x867c,
  265.         REG_BUS_FIFO_BUSY_bit                             = 1 << 0,
  266.         RING_FETCHING_DATA_bit                            = 1 << 1,
  267.         INDR1_FETCHING_DATA_bit                           = 1 << 2,
  268.         INDR2_FETCHING_DATA_bit                           = 1 << 3,
  269.         STATE_FETCHING_DATA_bit                           = 1 << 4,
  270.         PRED_FETCHING_DATA_bit                            = 1 << 5,
  271.         COHER_CNTR_NEQ_ZERO_bit                           = 1 << 6,
  272.         PFP_PARSING_PACKETS_bit                           = 1 << 7,
  273.         ME_PARSING_PACKETS_bit                            = 1 << 8,
  274.         RCIU_PFP_BUSY_bit                                 = 1 << 9,
  275.         RCIU_ME_BUSY_bit                                  = 1 << 10,
  276.         OUTSTANDING_READ_TAGS_bit                         = 1 << 11,
  277.         SEM_CMDFIFO_NOT_EMPTY_bit                         = 1 << 12,
  278.         SEM_FAILED_AND_HOLDING_bit                        = 1 << 13,
  279.         SEM_POLLING_FOR_PASS_bit                          = 1 << 14,
  280.         _3D_BUSY_bit                                      = 1 << 15,
  281.         _2D_BUSY_bit                                      = 1 << 16,
  282.     CP_STAT                                               = 0x8680,
  283.         CSF_RING_BUSY_bit                                 = 1 << 0,
  284.         CSF_WPTR_POLL_BUSY_bit                            = 1 << 1,
  285.         CSF_INDIRECT1_BUSY_bit                            = 1 << 2,
  286.         CSF_INDIRECT2_BUSY_bit                            = 1 << 3,
  287.         CSF_STATE_BUSY_bit                                = 1 << 4,
  288.         CSF_PREDICATE_BUSY_bit                            = 1 << 5,
  289.         CSF_BUSY_bit                                      = 1 << 6,
  290.         MIU_RDREQ_BUSY_bit                                = 1 << 7,
  291.         MIU_WRREQ_BUSY_bit                                = 1 << 8,
  292.         ROQ_RING_BUSY_bit                                 = 1 << 9,
  293.         ROQ_INDIRECT1_BUSY_bit                            = 1 << 10,
  294.         ROQ_INDIRECT2_BUSY_bit                            = 1 << 11,
  295.         ROQ_STATE_BUSY_bit                                = 1 << 12,
  296.         ROQ_PREDICATE_BUSY_bit                            = 1 << 13,
  297.         ROQ_ALIGN_BUSY_bit                                = 1 << 14,
  298.         PFP_BUSY_bit                                      = 1 << 15,
  299.         MEQ_BUSY_bit                                      = 1 << 16,
  300.         ME_BUSY_bit                                       = 1 << 17,
  301.         QUERY_BUSY_bit                                    = 1 << 18,
  302.         SEMAPHORE_BUSY_bit                                = 1 << 19,
  303.         INTERRUPT_BUSY_bit                                = 1 << 20,
  304.         SURFACE_SYNC_BUSY_bit                             = 1 << 21,
  305.         DMA_BUSY_bit                                      = 1 << 22,
  306.         RCIU_BUSY_bit                                     = 1 << 23,
  307.         CP_STAT__CP_BUSY_bit                              = 1 << 31,
  308.  
  309.     CP_ME_CNTL                                            = 0x86d8,
  310.         ME_STATMUX_mask                                   = 0xff << 0,
  311.         ME_STATMUX_shift                                  = 0,
  312.         ME_HALT_bit                                       = 1 << 28,
  313.     CP_ME_STATUS                                          = 0x86dc,
  314.  
  315.     CP_RB_RPTR                                            = 0x8700,
  316.         RB_RPTR_mask                                      = 0xfffff << 0,
  317.         RB_RPTR_shift                                     = 0,
  318.     CP_RB_WPTR_DELAY                                      = 0x8704,
  319.         PRE_WRITE_TIMER_mask                              = 0xfffffff << 0,
  320.         PRE_WRITE_TIMER_shift                             = 0,
  321.         PRE_WRITE_LIMIT_mask                              = 0x0f << 28,
  322.         PRE_WRITE_LIMIT_shift                             = 28,
  323.  
  324.     CP_ROQ_RB_STAT                                        = 0x8780,
  325.         ROQ_RPTR_PRIMARY_mask                             = 0x3ff << 0,
  326.         ROQ_RPTR_PRIMARY_shift                            = 0,
  327.         ROQ_WPTR_PRIMARY_mask                             = 0x3ff << 16,
  328.         ROQ_WPTR_PRIMARY_shift                            = 16,
  329.     CP_ROQ_IB1_STAT                                       = 0x8784,
  330.         ROQ_RPTR_INDIRECT1_mask                           = 0x3ff << 0,
  331.         ROQ_RPTR_INDIRECT1_shift                          = 0,
  332.         ROQ_WPTR_INDIRECT1_mask                           = 0x3ff << 16,
  333.         ROQ_WPTR_INDIRECT1_shift                          = 16,
  334.     CP_ROQ_IB2_STAT                                       = 0x8788,
  335.         ROQ_RPTR_INDIRECT2_mask                           = 0x3ff << 0,
  336.         ROQ_RPTR_INDIRECT2_shift                          = 0,
  337.         ROQ_WPTR_INDIRECT2_mask                           = 0x3ff << 16,
  338.         ROQ_WPTR_INDIRECT2_shift                          = 16,
  339.  
  340.     CP_MEQ_STAT                                           = 0x8794,
  341.         MEQ_RPTR_mask                                     = 0x3ff << 0,
  342.         MEQ_RPTR_shift                                    = 0,
  343.         MEQ_WPTR_mask                                     = 0x3ff << 16,
  344.         MEQ_WPTR_shift                                    = 16,
  345.  
  346.     CC_GC_SHADER_PIPE_CONFIG                              = 0x8950,
  347.         INACTIVE_QD_PIPES_mask                            = 0xff << 8,
  348.         INACTIVE_QD_PIPES_shift                           = 8,
  349.             R6XX_MAX_QD_PIPES                             = 8,
  350.         INACTIVE_SIMDS_mask                               = 0xff << 16,
  351.         INACTIVE_SIMDS_shift                              = 16,
  352.             R6XX_MAX_SIMDS                                = 8,
  353.     GC_USER_SHADER_PIPE_CONFIG                            = 0x8954,
  354.  
  355.     VC_ENHANCE                                            = 0x9714,
  356.     DB_DEBUG                                              = 0x9830,
  357.         PREZ_MUST_WAIT_FOR_POSTZ_DONE                     = 1 << 31,
  358.  
  359.     DB_WATERMARKS                                         = 0x00009838,
  360.         DEPTH_FREE_mask                                   = 0x1f << 0,
  361.         DEPTH_FREE_shift                                  = 0,
  362.         DEPTH_FLUSH_mask                                  = 0x3f << 5,
  363.         DEPTH_FLUSH_shift                                 = 5,
  364.         FORCE_SUMMARIZE_mask                              = 0x0f << 11,
  365.         FORCE_SUMMARIZE_shift                             = 11,
  366.         DEPTH_PENDING_FREE_mask                           = 0x1f << 15,
  367.         DEPTH_PENDING_FREE_shift                          = 15,
  368.         DEPTH_CACHELINE_FREE_mask                         = 0x1f << 20,
  369.         DEPTH_CACHELINE_FREE_shift                        = 20,
  370.         EARLY_Z_PANIC_DISABLE_bit                         = 1 << 25,
  371.         LATE_Z_PANIC_DISABLE_bit                          = 1 << 26,
  372.         RE_Z_PANIC_DISABLE_bit                            = 1 << 27,
  373.         DB_EXTRA_DEBUG_mask                               = 0x0f << 28,
  374.         DB_EXTRA_DEBUG_shift                              = 28,
  375.  
  376.     CP_RB_BASE                                            = 0xc100,
  377.     CP_RB_CNTL                                            = 0xc104,
  378.         RB_BUFSZ_mask                                     = 0x3f << 0,
  379.     CP_RB_WPTR                                            = 0xc114,
  380.         RB_WPTR_mask                                      = 0xfffff << 0,
  381.         RB_WPTR_shift                                     = 0,
  382.     CP_RB_RPTR_WR                                         = 0xc108,
  383.         RB_RPTR_WR_mask                                   = 0xfffff << 0,
  384.         RB_RPTR_WR_shift                                  = 0,
  385.  
  386.     CP_INT_STATUS                                         = 0xc128,
  387.         DISABLE_CNTX_SWITCH_INT_STAT_bit                  = 1 << 0,
  388.         ENABLE_CNTX_SWITCH_INT_STAT_bit                   = 1 << 1,
  389.         SEM_SIGNAL_INT_STAT_bit                           = 1 << 18,
  390.         CNTX_BUSY_INT_STAT_bit                            = 1 << 19,
  391.         CNTX_EMPTY_INT_STAT_bit                           = 1 << 20,
  392.         WAITMEM_SEM_INT_STAT_bit                          = 1 << 21,
  393.         PRIV_INSTR_INT_STAT_bit                           = 1 << 22,
  394.         PRIV_REG_INT_STAT_bit                             = 1 << 23,
  395.         OPCODE_ERROR_INT_STAT_bit                         = 1 << 24,
  396.         SCRATCH_INT_STAT_bit                              = 1 << 25,
  397.         TIME_STAMP_INT_STAT_bit                           = 1 << 26,
  398.         RESERVED_BIT_ERROR_INT_STAT_bit                   = 1 << 27,
  399.         DMA_INT_STAT_bit                                  = 1 << 28,
  400.         IB2_INT_STAT_bit                                  = 1 << 29,
  401.         IB1_INT_STAT_bit                                  = 1 << 30,
  402.         RB_INT_STAT_bit                                   = 1 << 31,
  403.  
  404. /*  SX_ALPHA_TEST_CONTROL                                 = 0x00028410, */
  405.         ALPHA_FUNC__REF_NEVER                             = 0,
  406.         ALPHA_FUNC__REF_ALWAYS                            = 7,
  407. /*  DB_SHADER_CONTROL                                     = 0x0002880c, */
  408.         Z_ORDER__EARLY_Z_THEN_LATE_Z                      = 2,
  409. /*  PA_SU_SC_MODE_CNTL                                    = 0x00028814, */
  410. /*      POLY_MODE_mask                                    = 0x03 << 3, */
  411.         POLY_MODE__TRIANGLES = 0, POLY_MODE__DUAL_MODE,
  412. /*      POLYMODE_FRONT_PTYPE_mask                         = 0x07 << 5, */
  413.         POLYMODE_PTYPE__POINTS = 0, POLYMODE_PTYPE__LINES, POLYMODE_PTYPE__TRIANGLES,
  414.     PA_SC_AA_SAMPLE_LOCS_8S_WD1_M                         = 0x00028c20,
  415.     DB_SRESULTS_COMPARE_STATE0                            = 0x00028d28, /* See autoregs: DB_SRESULTS_COMPARE_STATE1 */
  416. /*  DB_SRESULTS_COMPARE_STATE1                            = 0x00028d2c, */
  417.     DB_ALPHA_TO_MASK                                      = 0x00028d44,
  418.         ALPHA_TO_MASK_ENABLE                              = 1 << 0,
  419.         ALPHA_TO_MASK_OFFSET0_mask                        = 0x03 << 8,
  420.         ALPHA_TO_MASK_OFFSET0_shift                       = 8,
  421.         ALPHA_TO_MASK_OFFSET1_mask                        = 0x03 << 8,
  422.         ALPHA_TO_MASK_OFFSET1_shift                       = 10,
  423.         ALPHA_TO_MASK_OFFSET2_mask                        = 0x03 << 8,
  424.         ALPHA_TO_MASK_OFFSET2_shift                       = 12,
  425.         ALPHA_TO_MASK_OFFSET3_mask                        = 0x03 << 8,
  426.         ALPHA_TO_MASK_OFFSET3_shift                       = 14,
  427.  
  428. /*  SQ_VTX_CONSTANT_WORD2_0                               = 0x00038008, */
  429. /*      SQ_VTX_CONSTANT_WORD2_0__DATA_FORMAT_mask         = 0x3f << 20, */
  430.         FMT_INVALID=0,      FMT_8,          FMT_4_4,            FMT_3_3_2,
  431.                             FMT_16=5,       FMT_16_FLOAT,       FMT_8_8,
  432.         FMT_5_6_5,          FMT_6_5_5,      FMT_1_5_5_5,        FMT_4_4_4_4,
  433.         FMT_5_5_5_1,        FMT_32,         FMT_32_FLOAT,       FMT_16_16,
  434.         FMT_16_16_FLOAT=16, FMT_8_24,       FMT_8_24_FLOAT,     FMT_24_8,
  435.         FMT_24_8_FLOAT,     FMT_10_11_11,   FMT_10_11_11_FLOAT, FMT_11_11_10,
  436.         FMT_11_11_10_FLOAT, FMT_2_10_10_10, FMT_8_8_8_8,        FMT_10_10_10_2,
  437.         FMT_X24_8_32_FLOAT, FMT_32_32,      FMT_32_32_FLOAT,    FMT_16_16_16_16,
  438.         FMT_16_16_16_16_FLOAT=32,           FMT_32_32_32_32=34, FMT_32_32_32_32_FLOAT,
  439.                             FMT_1 = 37,                         FMT_GB_GR=39,
  440.         FMT_BG_RG,          FMT_32_AS_8,    FMT_32_AS_8_8,      FMT_5_9_9_9_SHAREDEXP,
  441.         FMT_8_8_8,          FMT_16_16_16,   FMT_16_16_16_FLOAT, FMT_32_32_32,
  442.         FMT_32_32_32_FLOAT=48,
  443.  
  444. /*  High level register file lengths */
  445.     SQ_ALU_CONSTANT                                       = SQ_ALU_CONSTANT0_0, /* 256 PS, 256 VS */
  446.     SQ_ALU_CONSTANT_ps_num                                = 256,
  447.     SQ_ALU_CONSTANT_vs_num                                = 256,
  448.     SQ_ALU_CONSTANT_all_num                               = 512,
  449.     SQ_ALU_CONSTANT_offset                                = 16,
  450.     SQ_ALU_CONSTANT_ps                                    = 0,
  451.     SQ_ALU_CONSTANT_vs                                    = SQ_ALU_CONSTANT_ps + SQ_ALU_CONSTANT_ps_num,
  452.     SQ_TEX_RESOURCE                                       = SQ_TEX_RESOURCE_WORD0_0,    /* 160 PS, 160 VS, 16 FS, 160 GS */
  453.     SQ_TEX_RESOURCE_ps_num                                = 160,
  454.     SQ_TEX_RESOURCE_vs_num                                = 160,
  455.     SQ_TEX_RESOURCE_fs_num                                = 16,
  456.     SQ_TEX_RESOURCE_gs_num                                = 160,
  457.     SQ_TEX_RESOURCE_all_num                               = 496,
  458.     SQ_TEX_RESOURCE_offset                                = 28,
  459.     SQ_TEX_RESOURCE_ps                                    = 0,
  460.     SQ_TEX_RESOURCE_vs                                    = SQ_TEX_RESOURCE_ps + SQ_TEX_RESOURCE_ps_num,
  461.     SQ_TEX_RESOURCE_fs                                    = SQ_TEX_RESOURCE_vs + SQ_TEX_RESOURCE_vs_num,
  462.     SQ_TEX_RESOURCE_gs                                    = SQ_TEX_RESOURCE_fs + SQ_TEX_RESOURCE_fs_num,
  463.     SQ_VTX_RESOURCE                                       = SQ_VTX_CONSTANT_WORD0_0,    /* 160 PS, 160 VS, 16 FS, 160 GS */
  464.     SQ_VTX_RESOURCE_ps_num                                = 160,
  465.     SQ_VTX_RESOURCE_vs_num                                = 160,
  466.     SQ_VTX_RESOURCE_fs_num                                = 16,
  467.     SQ_VTX_RESOURCE_gs_num                                = 160,
  468.     SQ_VTX_RESOURCE_all_num                               = 496,
  469.     SQ_VTX_RESOURCE_offset                                = 28,
  470.     SQ_VTX_RESOURCE_ps                                    = 0,
  471.     SQ_VTX_RESOURCE_vs                                    = SQ_VTX_RESOURCE_ps + SQ_VTX_RESOURCE_ps_num,
  472.     SQ_VTX_RESOURCE_fs                                    = SQ_VTX_RESOURCE_vs + SQ_VTX_RESOURCE_vs_num,
  473.     SQ_VTX_RESOURCE_gs                                    = SQ_VTX_RESOURCE_fs + SQ_VTX_RESOURCE_fs_num,
  474.     SQ_TEX_SAMPLER_WORD                                   = SQ_TEX_SAMPLER_WORD0_0,     /* 18 per PS, VS, GS */
  475.     SQ_TEX_SAMPLER_WORD_ps_num                            = 18,
  476.     SQ_TEX_SAMPLER_WORD_vs_num                            = 18,
  477.     SQ_TEX_SAMPLER_WORD_gs_num                            = 18,
  478.     SQ_TEX_SAMPLER_WORD_all_num                           = 54,
  479.     SQ_TEX_SAMPLER_WORD_offset                            = 12,
  480.     SQ_TEX_SAMPLER_WORD_ps                                = 0,
  481.     SQ_TEX_SAMPLER_WORD_vs                                = SQ_TEX_SAMPLER_WORD_ps + SQ_TEX_SAMPLER_WORD_ps_num,
  482.     SQ_TEX_SAMPLER_WORD_gs                                = SQ_TEX_SAMPLER_WORD_vs + SQ_TEX_SAMPLER_WORD_vs_num,
  483.     SQ_LOOP_CONST                                         = SQ_LOOP_CONST_0,            /* 32 per PS, VS, GS */
  484.     SQ_LOOP_CONST_ps_num                                  = 32,
  485.     SQ_LOOP_CONST_vs_num                                  = 32,
  486.     SQ_LOOP_CONST_gs_num                                  = 32,
  487.     SQ_LOOP_CONST_all_num                                 = 96,
  488.     SQ_LOOP_CONST_offset                                  = 4,
  489.     SQ_LOOP_CONST_ps                                      = 0,
  490.     SQ_LOOP_CONST_vs                                      = SQ_LOOP_CONST_ps + SQ_LOOP_CONST_ps_num,
  491.     SQ_LOOP_CONST_gs                                      = SQ_LOOP_CONST_vs + SQ_LOOP_CONST_vs_num,
  492.     SQ_BOOL_CONST                                         = SQ_BOOL_CONST_0,       /* 32 bits per PS, VS, GS */
  493.     SQ_BOOL_CONST_ps_num                                  = 1,
  494.     SQ_BOOL_CONST_vs_num                                  = 1,
  495.     SQ_BOOL_CONST_gs_num                                  = 1,
  496.     SQ_BOOL_CONST_all_num                                 = 3,
  497.     SQ_BOOL_CONST_offset                                  = 4,
  498.     SQ_BOOL_CONST_ps                                      = 0,
  499.     SQ_BOOL_CONST_vs                                      = SQ_BOOL_CONST_ps + SQ_BOOL_CONST_ps_num,
  500.     SQ_BOOL_CONST_gs                                      = SQ_BOOL_CONST_vs + SQ_BOOL_CONST_vs_num
  501. };
  502.  
  503.  
  504. #endif
  505.