[Intel-gfx] [PATCH v9 1/2] drm/i915: Implement WaProgramMgsrForCorrectSliceSpecificMmioReads

Oscar Mateo oscar.mateo at intel.com
Wed Apr 18 16:45:52 UTC 2018



On 4/18/2018 9:38 AM, Chris Wilson wrote:
> Quoting Oscar Mateo (2018-04-18 17:30:41)
>>
>> On 4/17/2018 3:58 PM, Yunwei Zhang wrote:
>>> +     /*
>>> +      * HW expects MCR to be programed to a enabled slice/subslice pair
>>> +      * before any MMIO read into slice/subslice register
>>> +      */
>> The comment above makes more sense in sanitize_mcr, together with the WA
>> label. You can make it a bit more verbose with the info in the commit
>> message. Something like this:
>>
>> /*
>>    * WaProgramMgsrForCorrectSliceSpecificMmioReads:cnl,icl
>>    * Before any MMIO read into slice/subslice specific registers, MCR
>>    * packet control register needs to be programmed to point to any
>>    * enabled s/ss pair. Otherwise, incorrect values will be returned.
>>    * This means each subsequent MMIO read will be forwarded to an
>>    * specific s/ss combination, but this is OK since these registers
>>    * are consistent across s/ss in almost all cases. In the rare
>>    * occasions, such as INSTDONE, where this value is dependent
>>    * on s/ss combo, the read shoud be done with read_subslice_reg.
>>    */
>>
>> I don't think any other comment is required here.
> Apart from the answer to the earlier question, what mmio read after this
> point? If all slice/subslice register access is through this function,
> what are you trying to protect? Very curious.
> -Chris

The problem is that the BSpec does not have a comprehensive list of 
registers that live in the slice/subslice, so it's difficult to know 
when this is going to become a problem. For example, I know from 
previous experience that the MOCS tables are replicated across slices 
(that's why we couldn't let UMD decide when to shutdown them: because 
the MOCS tables get lost as soon as you reconfigure the number of s/ss. 
The only way to do this in by poking in the context, so that the MOCS 
gets reprogrammed immediately after).


More information about the Intel-gfx mailing list