[Intel-xe] [PATCH 00/12] GSC FW loading

Daniele Ceraolo Spurio daniele.ceraolospurio at intel.com
Mon Nov 13 16:09:23 UTC 2023



On 11/13/2023 8:05 AM, Lucas De Marchi wrote:
> On Fri, Oct 27, 2023 at 03:29:14PM -0700, Daniele Ceraolo Spurio wrote:
>> the GSC (Graphics Security Controller) is the root of trust for content
>> protection operations (PXP, HDCP), so loading the the GSC FW is a
>> prerequisite for those features. Loading the FW is required to turn off
>> the GSC forcewake well (which we must turn on to enable GSCCS idleness)
>> and therefore allows MC6 entry.
>
> Regarding this last part, I wonder if we could simply put the GSC
> forcewake if we detect the problematic situation: GSC fw not being
> loaded and platform requiring that for proper MC6 entry.  Would that be
> possible?

No, the GSC ROM itself holds the forcewake ref and AFAIK the CPU can't 
directly touch anything ROM-related. When this first came up and we 
discussed it with HW architecture they said that the only option on MTL 
is to load the FW.

Daniele

>
> Lucas De Marchi
>
>
>>
>> The GSC FW uses 3 separate versions: release, compatibility and
>> security. The compatibility version is the one that dictates whether the
>> driver knows how to interface with the binary so that's the one we match
>> against, but we also fetch the other two for debug information.
>>
>> The GSCCS is used to both load the FW (via the GSC_FW_LOAD command) and
>> to send heci packets to it (via the GSC_HECI_PKT command).
>>
>> Note: the flr patch from Andrzej is being reviewed separately, I've just
>> included it here because it is a dependency.
>>
>> Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
>> Cc: John Harrison <john.c.harrison at intel.com>
>>
>> Andrzej Hajda (1):
>>  drm/xe: implement driver initiated function-reset
>>
>> Daniele Ceraolo Spurio (11):
>>  fixup! drm/xe/guc: Report submission version of GuC firmware
>>  drm/xe/uc: Rework uC version tracking
>>  drm/xe/gsc: Introduce GSC FW
>>  drm/xe/gsc: Parse GSC FW header
>>  drm/xe/gsc: GSC FW load
>>  drm/xe/gsc: Implement WA 14015076503
>>  drm/xe/gsc: Trigger a driver flr to cleanup the GSC on unload
>>  drm/xe/gsc: Add an interface for GSC packet submissions
>>  drm/xe/gsc: Query GSC compatibility version
>>  drm/xe/gsc: Define GSCCS for MTL
>>  drm/xe/gsc: Define GSC FW for MTL
>>
>> drivers/gpu/drm/xe/Makefile                   |   4 +-
>> .../gpu/drm/xe/abi/gsc_command_header_abi.h   |  46 +++
>> .../gpu/drm/xe/abi/gsc_mkhi_commands_abi.h    |  39 ++
>> .../gpu/drm/xe/instructions/xe_gsc_commands.h |  36 ++
>> .../gpu/drm/xe/instructions/xe_instr_defs.h   |   1 +
>> drivers/gpu/drm/xe/regs/xe_gsc_regs.h         |  39 ++
>> drivers/gpu/drm/xe/regs/xe_regs.h             |   7 +
>> drivers/gpu/drm/xe/xe_device.c                |  78 ++++
>> drivers/gpu/drm/xe/xe_device_types.h          |   3 +
>> drivers/gpu/drm/xe/xe_gsc.c                   | 389 ++++++++++++++++++
>> drivers/gpu/drm/xe/xe_gsc.h                   |  16 +
>> drivers/gpu/drm/xe/xe_gsc_submit.c            | 170 ++++++++
>> drivers/gpu/drm/xe/xe_gsc_submit.h            |  30 ++
>> drivers/gpu/drm/xe/xe_gsc_types.h             |  39 ++
>> drivers/gpu/drm/xe/xe_gt.c                    |  46 +++
>> drivers/gpu/drm/xe/xe_guc_types.h             |   9 -
>> drivers/gpu/drm/xe/xe_hw_engine.c             |  20 +
>> drivers/gpu/drm/xe/xe_module.c                |   5 +
>> drivers/gpu/drm/xe/xe_module.h                |   1 +
>> drivers/gpu/drm/xe/xe_pci.c                   |   2 +-
>> drivers/gpu/drm/xe/xe_uc.c                    |  21 +-
>> drivers/gpu/drm/xe/xe_uc_fw.c                 | 257 +++++++++---
>> drivers/gpu/drm/xe/xe_uc_fw.h                 |   3 +
>> drivers/gpu/drm/xe/xe_uc_fw_abi.h             | 113 +++++
>> drivers/gpu/drm/xe/xe_uc_fw_types.h           |  40 +-
>> drivers/gpu/drm/xe/xe_uc_types.h              |   3 +
>> drivers/gpu/drm/xe/xe_wa_oob.rules            |   1 +
>> 27 files changed, 1329 insertions(+), 89 deletions(-)
>> create mode 100644 drivers/gpu/drm/xe/abi/gsc_command_header_abi.h
>> create mode 100644 drivers/gpu/drm/xe/abi/gsc_mkhi_commands_abi.h
>> create mode 100644 drivers/gpu/drm/xe/instructions/xe_gsc_commands.h
>> create mode 100644 drivers/gpu/drm/xe/regs/xe_gsc_regs.h
>> create mode 100644 drivers/gpu/drm/xe/xe_gsc.c
>> create mode 100644 drivers/gpu/drm/xe/xe_gsc.h
>> create mode 100644 drivers/gpu/drm/xe/xe_gsc_submit.c
>> create mode 100644 drivers/gpu/drm/xe/xe_gsc_submit.h
>> create mode 100644 drivers/gpu/drm/xe/xe_gsc_types.h
>>
>> -- 
>> 2.41.0
>>



More information about the Intel-xe mailing list