Re: [PATCH v9 1/2] drm/i915: Implement WaProgramMgsrForCorrectSliceSpecificMmioReads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 4/18/2018 9:45 AM, Oscar Mateo wrote:


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).

This hasn't been an issue until know because the hardware would route your read to a valid s/ss combo whenever the MCR select was 0s. Apparently, this is not the case anymore...
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux