From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: intel-gfx@lists.freedesktop.org,
Lucas De Marchi <lucas.demarchi@intel.com>,
Mika Kuoppala <mika.kuoppala@intel.com>
Subject: Re: [PATCH 18/22] drm/i915/tgl: Define MOCS entries for Tigerlake
Date: Thu, 18 Jul 2019 20:44:41 +0300 [thread overview]
Message-ID: <20190718174441.GD5942@intel.com> (raw)
In-Reply-To: <1d7f6de6-5515-0511-00ac-6dfe7e705eea@intel.com>
On Thu, Jul 18, 2019 at 10:09:27AM -0700, Daniele Ceraolo Spurio wrote:
>
>
> On 7/18/19 6:08 AM, Ville Syrjälä wrote:
> > On Fri, Jul 12, 2019 at 06:09:36PM -0700, Lucas De Marchi wrote:
> >> From: Tomasz Lis <tomasz.lis@intel.com>
> >>
> >> The MOCS table is published as part of bspec, and versioned. Entries
> >> are supposed to never be modified, but new ones can be added. Adding
> >> entries increases table version. The patch includes version 1 entries.
> >>
> >> Two of the 3 legacy entries used for gen9 are no longer expected to work.
> >> Although we are changing the gen11 table, those changes are supposed to
> >> be backward compatible since we are only touching previously undefined
> >> entries.
> >>
> >> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> >> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> >> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> >> Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
> >> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/gt/intel_mocs.c | 25 ++++++++++++++++++++++---
> >> 1 file changed, 22 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
> >> index 290a5e9b90b9..259e7bec0a63 100644
> >> --- a/drivers/gpu/drm/i915/gt/intel_mocs.c
> >> +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
> >> @@ -62,6 +62,10 @@ struct drm_i915_mocs_table {
> >> #define GEN11_NUM_MOCS_ENTRIES 64 /* 63-64 are reserved, but configured. */
> >>
> >> /* (e)LLC caching options */
> >> +/*
> >> + * Note: LE_0_PAGETABLE works only up to Gen11; for newer gens it means
> >> + * the same as LE_UC
> >> + */
> >> #define LE_0_PAGETABLE _LE_CACHEABILITY(0)
> >> #define LE_1_UC _LE_CACHEABILITY(1)
> >> #define LE_2_WT _LE_CACHEABILITY(2)
> >> @@ -100,8 +104,9 @@ struct drm_i915_mocs_table {
> >> * of bspec.
> >> *
> >> * Entries not part of the following tables are undefined as far as
> >> - * userspace is concerned and shouldn't be relied upon. For the time
> >> - * being they will be initialized to PTE.
> >> + * userspace is concerned and shouldn't be relied upon. For Gen < 12
> >> + * they will be initialized to PTE. Gen >= 12 onwards don't have a setting for
> >> + * PTE. We use the same value, but that actually means Uncached.
> >> *
> >> * The last two entries are reserved by the hardware. For ICL+ they
> >> * should be initialized according to bspec and never used, for older
> >> @@ -137,11 +142,13 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = {
> >> };
> >>
> >> #define GEN11_MOCS_ENTRIES \
> >> - /* Base - Uncached (Deprecated) */ \
> >> + /* Gen11: Base - Uncached (Deprecated) */ \
> >> + /* Gen12+: Base - Error (Reserved for Non-Use) */ \
> >> MOCS_ENTRY(I915_MOCS_UNCACHED, \
> >> LE_1_UC | LE_TC_1_LLC, \
> >> L3_1_UC), \
> >> /* Base - L3 + LeCC:PAT (Deprecated) */ \
> >> + /* Gen12+: Base - Reserved */ \
> >> MOCS_ENTRY(I915_MOCS_PTE, \
> >> LE_0_PAGETABLE | LE_TC_1_LLC, \
> >> L3_3_WB), \
> >> @@ -233,6 +240,18 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = {
> >> MOCS_ENTRY(23, \
> >> LE_3_WB | LE_TC_1_LLC | LE_LRUM(3) | LE_RSC(1) | LE_SCC(7), \
> >> L3_3_WB), \
> >> + /* Gen12+: HW Reserved - HDC:L1 + L3 + LLC */ \
> >
> > Why is this marked as reserved? From the looks of things 48-61 should
> > just be normal entries that userspace can select to get HDC L1$. And
> > looks like icl already has that stuff. So someone should probably figure
> > out if Mesa/etc. can make use of the HDC L1$, and if so we should add
> > the relevant MOCS entries for icl as well.
>
> Here the reserved terminology is indeed misleading. The 48-59 range is a
> "special" range where L1 usage is implicitly enabled by the HW, as there
> is no explicit L1 toggle in the MOCS registers. The reserved here means
> that the range shouldn't be used for "normal" MOCS settings, but SW can
> freely use these entries as needed. Similarly, MOCS 60 and 61 are
> reserved for other special purposes, but are still usable by SW. The
> only entries SW shouldn't touch are 62 and 63.
>
> Regarding ICL, Gen11 HW doesn't have the capability so no new entries
> are required there.
Hmm. The table doesn't list those entries, but HDC_CHICKEN2 seems to be
saying the features is in there. HDC_MODE also talks about HDC L1$.
Confusing.
>
> >
> >> + MOCS_ENTRY(48, \
> >> + LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
> >> + L3_3_WB), \
> >> + /* Gen12+: HW Reserved - HW Special Case (CCS) */ \
>
> The specs have MOCS 49-51 defined as well.
>
> Daniele
>
> >> + MOCS_ENTRY(60, \
> >> + LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
> >> + L3_1_UC), \
> >> + /* Gen12+: HW Reserved - HW Special Case (Displayable) */ \
> >> + MOCS_ENTRY(61, \
> >> + LE_1_UC | LE_TC_1_LLC | LE_SCF(1), \
> >> + L3_3_WB), \
> >> /* HW Reserved - SW program but never use */ \
> >> MOCS_ENTRY(62, \
> >> LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
> >> --
> >> 2.21.0
> >
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-07-18 17:44 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-13 1:09 [PATCH 00/22] Tiger Lake part 2 Lucas De Marchi
2019-07-13 1:09 ` [PATCH 01/22] drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization Lucas De Marchi
2019-07-18 20:35 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 02/22] drm/i915/tgl: select correct bit for port select Lucas De Marchi
2019-07-16 21:37 ` Srivatsa, Anusha
2019-07-18 20:20 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 03/22] drm/i915/tgl: update ddi/tc clock_off bits Lucas De Marchi
2019-07-16 22:41 ` Srivatsa, Anusha
2019-07-18 21:09 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 04/22] drm/i915/tgl: Add hpd interrupt handling Lucas De Marchi
2019-07-19 13:47 ` Ville Syrjälä
2019-07-19 16:45 ` Lucas De Marchi
2019-07-19 17:08 ` Ville Syrjälä
2019-07-19 17:14 ` Ville Syrjälä
2019-07-19 17:28 ` Lucas De Marchi
2019-07-13 1:09 ` [PATCH 05/22] drm/i915/tgl: Update north display hotplug detection to TGL connections Lucas De Marchi
2019-07-16 23:09 ` Srivatsa, Anusha
2019-07-13 1:09 ` [PATCH 06/22] drm/i915/tgl: handle DP aux interrupts Lucas De Marchi
2019-07-17 0:14 ` Srivatsa, Anusha
2019-07-13 1:09 ` [PATCH 07/22] drm/i915/dmc: Load DMC on TGL Lucas De Marchi
2019-07-19 10:44 ` Anshuman Gupta
2019-07-19 15:34 ` Lucas De Marchi
2019-07-19 16:05 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 08/22] drm/i915/tgl: Add DKL phy pll registers Lucas De Marchi
2019-07-19 21:22 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 09/22] drm/i915/tgl: re-indent code to prepare for DKL changes Lucas De Marchi
2019-07-22 22:31 ` Atwood, Matthew S
2019-07-13 1:09 ` [PATCH 10/22] drm/i915/tgl: Add DKL phy pll state calculations Lucas De Marchi
2019-07-13 1:09 ` [PATCH 11/22] drm/i915/tgl: start adding the DKL PLLs to use on TC ports Lucas De Marchi
2019-07-13 1:09 ` [PATCH 12/22] drm/i915/tgl: Add support for dkl pll write Lucas De Marchi
2019-07-13 1:09 ` [PATCH 13/22] drm/i915/gen12: add support for reading the timestamp frequency Lucas De Marchi
2019-07-13 1:09 ` [PATCH 14/22] drm/i915/tgl: allow the reg_read ioctl to read the RCS TIMESTAMP register Lucas De Marchi
2019-07-13 1:09 ` [PATCH 15/22] drm/i915/tgl: Introduce initial Tigerlake Workarounds Lucas De Marchi
2019-07-13 1:09 ` [PATCH 16/22] drm/i915/tgl: Implement Wa_1604555607 Lucas De Marchi
2019-07-18 6:03 ` Tvrtko Ursulin
2019-07-19 17:41 ` Lucas De Marchi
2019-07-13 1:09 ` [PATCH 17/22] drm/i915/tgl: Implement Wa_1406941453 Lucas De Marchi
2019-07-23 16:35 ` Summers, Stuart
2019-07-13 1:09 ` [PATCH 18/22] drm/i915/tgl: Define MOCS entries for Tigerlake Lucas De Marchi
2019-07-18 13:08 ` Ville Syrjälä
2019-07-18 17:09 ` Daniele Ceraolo Spurio
2019-07-18 17:44 ` Ville Syrjälä [this message]
2019-07-24 22:32 ` Lucas De Marchi
2019-07-25 18:26 ` Lis, Tomasz
2019-07-13 1:09 ` [PATCH 19/22] drm/i915/tgl: Tigerlake only has global MOCS registers Lucas De Marchi
2019-07-18 17:40 ` Daniele Ceraolo Spurio
2019-07-19 19:42 ` Lucas De Marchi
2019-07-13 1:09 ` [PATCH 20/22] drm/i915: Move MOCS setup to intel_mocs.c Lucas De Marchi
2019-07-23 16:30 ` Summers, Stuart
2019-07-13 1:09 ` [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers Lucas De Marchi
2019-07-18 5:47 ` Anshuman Gupta
2019-07-19 15:58 ` Atwood, Matthew S
2019-07-19 18:39 ` Lucas De Marchi
2019-07-22 7:41 ` Anshuman Gupta
2019-07-22 17:40 ` Lucas De Marchi
2019-07-13 1:09 ` [PATCH 22/22] drm/i915/mst: Do not hardcoded the crtcs that encoder can connect Lucas De Marchi
2019-07-18 13:10 ` Ville Syrjälä
2019-08-15 17:41 ` James Ausmus
2019-07-13 1:19 ` ✗ Fi.CI.CHECKPATCH: warning for Tiger Lake part 2 Patchwork
2019-07-13 1:38 ` ✓ Fi.CI.BAT: success " Patchwork
2019-07-14 20:26 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-07-15 22:32 ` ✗ Fi.CI.CHECKPATCH: warning for Tiger Lake part 2 (rev2) Patchwork
2019-07-15 22:55 ` ✓ Fi.CI.BAT: success " Patchwork
2019-07-16 0:02 ` ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190718174441.GD5942@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=daniele.ceraolospurio@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
--cc=mika.kuoppala@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.