diff options
-rw-r--r-- | lib/instdone.c | 82 | ||||
-rw-r--r-- | lib/intel_reg.h | 67 |
2 files changed, 148 insertions, 1 deletions
diff --git a/lib/instdone.c b/lib/instdone.c index ca4002e7..bbb72b32 100644 --- a/lib/instdone.c +++ b/lib/instdone.c @@ -58,10 +58,90 @@ gen4_instdone1_bit(uint32_t bit, const char *name) add_instdone_bit(INST_DONE_1, bit, name); } +static void +gen6_instdone1_bit(uint32_t bit, const char *name) +{ + add_instdone_bit(GEN6_INSTDONE_1, bit, name); +} + +static void +gen6_instdone2_bit(uint32_t bit, const char *name) +{ + add_instdone_bit(GEN6_INSTDONE_2, bit, name); +} + void init_instdone_definitions(void) { - if (IS_965(devid)) { + if (IS_GEN6(devid)) { + /* Now called INSTDONE_1 in the docs. */ + gen6_instdone1_bit(GEN6_MA_3_DONE, "Message Arbiter 3"); + gen6_instdone1_bit(GEN6_EU_32_DONE, "EU 32"); + gen6_instdone1_bit(GEN6_EU_31_DONE, "EU 31"); + gen6_instdone1_bit(GEN6_EU_30_DONE, "EU 30"); + gen6_instdone1_bit(GEN6_MA_3_DONE, "Message Arbiter 2"); + gen6_instdone1_bit(GEN6_EU_22_DONE, "EU 22"); + gen6_instdone1_bit(GEN6_EU_21_DONE, "EU 21"); + gen6_instdone1_bit(GEN6_EU_20_DONE, "EU 20"); + gen6_instdone1_bit(GEN6_MA_3_DONE, "Message Arbiter 1"); + gen6_instdone1_bit(GEN6_EU_12_DONE, "EU 12"); + gen6_instdone1_bit(GEN6_EU_11_DONE, "EU 11"); + gen6_instdone1_bit(GEN6_EU_10_DONE, "EU 10"); + gen6_instdone1_bit(GEN6_MA_3_DONE, "Message Arbiter 0"); + gen6_instdone1_bit(GEN6_EU_02_DONE, "EU 02"); + gen6_instdone1_bit(GEN6_EU_01_DONE, "EU 01"); + gen6_instdone1_bit(GEN6_EU_00_DONE, "EU 00"); + + gen6_instdone1_bit(GEN6_IC_3_DONE, "IC 3"); + gen6_instdone1_bit(GEN6_IC_2_DONE, "IC 2"); + gen6_instdone1_bit(GEN6_IC_1_DONE, "IC 1"); + gen6_instdone1_bit(GEN6_IC_0_DONE, "IC 0"); + gen6_instdone1_bit(GEN6_ISC_10_DONE, "ISC 1/0"); + gen6_instdone1_bit(GEN6_ISC_32_DONE, "ISC 3/2"); + + gen6_instdone1_bit(GEN6_VSC_DONE, "VSC"); + gen6_instdone1_bit(GEN6_IEF_DONE, "IEF"); + gen6_instdone1_bit(GEN6_VFE_DONE, "VFE"); + gen6_instdone1_bit(GEN6_TD_DONE, "TD"); + gen6_instdone1_bit(GEN6_TS_DONE, "TS"); + gen6_instdone1_bit(GEN6_GW_DONE, "GW"); + gen6_instdone1_bit(GEN6_HIZ_DONE, "HIZ"); + gen6_instdone1_bit(GEN6_AVS_DONE, "AVS"); + + /* Now called INSTDONE_2 in the docs. */ + gen6_instdone2_bit(GEN6_GAM_DONE, "GAM"); + gen6_instdone2_bit(GEN6_CS_DONE, "CS"); + gen6_instdone2_bit(GEN6_WMBE_DONE, "WMBE"); + gen6_instdone2_bit(GEN6_SVRW_DONE, "SVRW"); + gen6_instdone2_bit(GEN6_RCC_DONE, "RCC"); + gen6_instdone2_bit(GEN6_SVG_DONE, "SVG"); + gen6_instdone2_bit(GEN6_ISC_DONE, "ISC"); + gen6_instdone2_bit(GEN6_MT_DONE, "MT"); + gen6_instdone2_bit(GEN6_RCPFE_DONE, "RCPFE"); + gen6_instdone2_bit(GEN6_RCPBE_DONE, "RCPBE"); + gen6_instdone2_bit(GEN6_VDI_DONE, "VDI"); + gen6_instdone2_bit(GEN6_RCZ_DONE, "RCZ"); + gen6_instdone2_bit(GEN6_DAP_DONE, "DAP"); + gen6_instdone2_bit(GEN6_PSD_DONE, "PSD"); + gen6_instdone2_bit(GEN6_IZ_DONE, "IZ"); + gen6_instdone2_bit(GEN6_WMFE_DONE, "WMFE"); + gen6_instdone2_bit(GEN6_SVSM_DONE, "SVSM"); + gen6_instdone2_bit(GEN6_QC_DONE, "QC"); + gen6_instdone2_bit(GEN6_FL_DONE, "FL"); + gen6_instdone2_bit(GEN6_SC_DONE, "SC"); + gen6_instdone2_bit(GEN6_DM_DONE, "DM"); + gen6_instdone2_bit(GEN6_FT_DONE, "FT"); + gen6_instdone2_bit(GEN6_DG_DONE, "DG"); + gen6_instdone2_bit(GEN6_SI_DONE, "SI"); + gen6_instdone2_bit(GEN6_SO_DONE, "SO"); + gen6_instdone2_bit(GEN6_PL_DONE, "PL"); + gen6_instdone2_bit(GEN6_VME_DONE, "VME"); + gen6_instdone2_bit(GEN6_SF_DONE, "SF"); + gen6_instdone2_bit(GEN6_CL_DONE, "CL"); + gen6_instdone2_bit(GEN6_GS_DONE, "GS"); + gen6_instdone2_bit(GEN6_VS0_DONE, "VS0"); + gen6_instdone2_bit(GEN6_VF_DONE, "VF"); + } else if (IS_965(devid)) { gen4_instdone_bit(I965_ROW_0_EU_0_DONE, "Row 0, EU 0"); gen4_instdone_bit(I965_ROW_0_EU_1_DONE, "Row 0, EU 1"); gen4_instdone_bit(I965_ROW_0_EU_2_DONE, "Row 0, EU 2"); diff --git a/lib/intel_reg.h b/lib/intel_reg.h index a743e674..7b9c7730 100644 --- a/lib/intel_reg.h +++ b/lib/intel_reg.h @@ -462,6 +462,39 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define I965_IC_ROW_1_DONE (1 << 2) # define I965_CP_DONE (1 << 1) # define I965_RING_0_ENABLE (1 << 0) + +#define GEN6_INSTDONE_1 0x206c +# define GEN6_MA_3_DONE (1 << 31) +# define GEN6_EU_32_DONE (1 << 30) +# define GEN6_EU_31_DONE (1 << 29) +# define GEN6_EU_30_DONE (1 << 28) +# define GEN6_MA_2_DONE (1 << 27) +# define GEN6_EU_22_DONE (1 << 26) +# define GEN6_EU_21_DONE (1 << 25) +# define GEN6_EU_20_DONE (1 << 24) +# define GEN6_MA_1_DONE (1 << 23) +# define GEN6_EU_12_DONE (1 << 22) +# define GEN6_EU_11_DONE (1 << 21) +# define GEN6_EU_10_DONE (1 << 20) +# define GEN6_MA_0_DONE (1 << 19) +# define GEN6_EU_02_DONE (1 << 18) +# define GEN6_EU_01_DONE (1 << 17) +# define GEN6_EU_00_DONE (1 << 16) +# define GEN6_IC_3_DONE (1 << 15) +# define GEN6_IC_2_DONE (1 << 14) +# define GEN6_IC_1_DONE (1 << 13) +# define GEN6_IC_0_DONE (1 << 12) +# define GEN6_ISC_10_DONE (1 << 11) +# define GEN6_ISC_32_DONE (1 << 10) +# define GEN6_VSC_DONE (1 << 9) +# define GEN6_IEF_DONE (1 << 8) +# define GEN6_VFE_DONE (1 << 7) +# define GEN6_TD_DONE (1 << 6) +# define GEN6_TS_DONE (1 << 4) +# define GEN6_GW_DONE (1 << 3) +# define GEN6_HIZ_DONE (1 << 2) +# define GEN6_AVS_DONE (1 << 1) + #define INST_PS_I965 0x2070 /* Current active ring head address: @@ -495,6 +528,40 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define I965_VS0_CS_DONE (1 << 1) # define I965_VF_CS_DONE (1 << 0) +#define GEN6_INSTDONE_2 0x207c +# define GEN6_GAM_DONE (1 << 31) +# define GEN6_CS_DONE (1 << 30) +# define GEN6_WMBE_DONE (1 << 29) +# define GEN6_SVRW_DONE (1 << 28) +# define GEN6_RCC_DONE (1 << 27) +# define GEN6_SVG_DONE (1 << 26) +# define GEN6_ISC_DONE (1 << 25) +# define GEN6_MT_DONE (1 << 24) +# define GEN6_RCPFE_DONE (1 << 23) +# define GEN6_RCPBE_DONE (1 << 22) +# define GEN6_VDI_DONE (1 << 21) +# define GEN6_RCZ_DONE (1 << 20) +# define GEN6_DAP_DONE (1 << 19) +# define GEN6_PSD_DONE (1 << 18) +# define GEN6_IZ_DONE (1 << 17) +# define GEN6_WMFE_DONE (1 << 16) +# define GEN6_SVSM_DONE (1 << 15) +# define GEN6_QC_DONE (1 << 14) +# define GEN6_FL_DONE (1 << 13) +# define GEN6_SC_DONE (1 << 12) +# define GEN6_DM_DONE (1 << 11) +# define GEN6_FT_DONE (1 << 10) +# define GEN6_DG_DONE (1 << 9) +# define GEN6_SI_DONE (1 << 8) +# define GEN6_SO_DONE (1 << 7) +# define GEN6_PL_DONE (1 << 6) +# define GEN6_VME_DONE (1 << 5) +# define GEN6_SF_DONE (1 << 4) +# define GEN6_CL_DONE (1 << 3) +# define GEN6_GS_DONE (1 << 2) +# define GEN6_VS0_DONE (1 << 1) +# define GEN6_VF_DONE (1 << 0) + #define CACHE_MODE_0 0x2120 #define CACHE_MODE_1 0x2124 #define MI_MODE 0x209c |