mbox series

[RFC,00/14] Introduce Intel PXP

Message ID 20210206020925.36729-1-daniele.ceraolospurio@intel.com (mailing list archive)
Headers show
Series Introduce Intel PXP | expand

Message

Daniele Ceraolo Spurio Feb. 6, 2021, 2:09 a.m. UTC
PXP (Protected Xe Path) is an i915 component, available on
GEN12+, that helps to establish the hardware protected session
and manage the status of the alive software session, as well
as its life cycle.

I'm taking over this series from Sean. I've significantly reworked the
code since his last revisioni [1], including a different patch split, so
I've reset the series revision count. I believe I've addressed most of
the pending comments, but please point out aything I've missed.

Still RFC for 2 reasons:
- mutex usage needs a bit more reworking
- very lightly tested

[1] https://patchwork.freedesktop.org/series/84620/

Cc: Huang Sean Z <sean.z.huang@intel.com>
Cc: Gaurav Kumar <kumar.gaurav@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Anshuman Gupta (1):
  drm/i915/pxp: Add plane decryption support

Bommu Krishnaiah (2):
  drm/i915/uapi: introduce drm_i915_gem_create_ext
  drm/i915/pxp: User interface for Protected buffer

Daniele Ceraolo Spurio (5):
  drm/i915/pxp: Define PXP component interface
  drm/i915/pxp: define PXP device flag and kconfig
  drm/i915/pxp: allocate a vcs context for pxp usage
  drm/i915/pxp: set KCR reg init during the boot time
  drm/i915/pxp: enable PXP for integrated Gen12

Huang, Sean Z (5):
  drm/i915/pxp: Implement funcs to create the TEE channel
  drm/i915/pxp: Create the arbitrary session after boot
  drm/i915/pxp: Implement arb session teardown
  drm/i915/pxp: Implement PXP irq handler
  drm/i915/pxp: Enable PXP power management

Vitaly Lubart (1):
  mei: pxp: export pavp client to me client bus

 drivers/gpu/drm/i915/Kconfig                  |  11 +
 drivers/gpu/drm/i915/Makefile                 |   9 +
 drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c   |  34 +++
 drivers/gpu/drm/i915/gem/i915_gem_context.h   |   6 +
 .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   9 +
 .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
 drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
 drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   7 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   6 +
 drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
 drivers/gpu/drm/i915/i915_drv.c               |   7 +-
 drivers/gpu/drm/i915/i915_drv.h               |  10 +
 drivers/gpu/drm/i915/i915_pci.c               |   2 +
 drivers/gpu/drm/i915/i915_reg.h               |   2 +
 drivers/gpu/drm/i915/intel_device_info.h      |   1 +
 drivers/gpu/drm/i915/pxp/intel_pxp.c          | 107 ++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp.h          |  54 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 227 +++++++++++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  15 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c      | 147 +++++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h      |  33 +++
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  94 +++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  36 +++
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c  | 123 ++++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_session.h  |  17 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 200 +++++++++++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  29 +++
 drivers/misc/mei/Kconfig                      |   2 +
 drivers/misc/mei/Makefile                     |   1 +
 drivers/misc/mei/pxp/Kconfig                  |  13 +
 drivers/misc/mei/pxp/Makefile                 |   7 +
 drivers/misc/mei/pxp/mei_pxp.c                | 230 ++++++++++++++++++
 drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
 include/drm/i915_component.h                  |   1 +
 include/drm/i915_pxp_tee_interface.h          |  45 ++++
 include/uapi/drm/i915_drm.h                   |  70 ++++++
 40 files changed, 1685 insertions(+), 8 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
 create mode 100644 drivers/misc/mei/pxp/Kconfig
 create mode 100644 drivers/misc/mei/pxp/Makefile
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
 create mode 100644 include/drm/i915_pxp_tee_interface.h

Comments

Daniele Ceraolo Spurio Feb. 6, 2021, 2:15 a.m. UTC | #1
On 2/5/2021 6:09 PM, Daniele Ceraolo Spurio wrote:
> PXP (Protected Xe Path) is an i915 component, available on
> GEN12+, that helps to establish the hardware protected session
> and manage the status of the alive software session, as well
> as its life cycle.
>
> I'm taking over this series from Sean. I've significantly reworked the
> code since his last revisioni [1], including a different patch split, so
> I've reset the series revision count. I believe I've addressed most of
> the pending comments, but please point out aything I've missed.
>
> Still RFC for 2 reasons:
> - mutex usage needs a bit more reworking
> - very lightly tested
>
> [1] https://patchwork.freedesktop.org/series/84620/
>
> Cc: Huang Sean Z <sean.z.huang@intel.com>
> Cc: Gaurav Kumar <kumar.gaurav@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Adding a couple more people:

Cc: Juston Li <juston.li@intel.com>
Cc: Ryan T Huang <ryan.t.huang@intel.com>

Daniele

>
> Anshuman Gupta (1):
>    drm/i915/pxp: Add plane decryption support
>
> Bommu Krishnaiah (2):
>    drm/i915/uapi: introduce drm_i915_gem_create_ext
>    drm/i915/pxp: User interface for Protected buffer
>
> Daniele Ceraolo Spurio (5):
>    drm/i915/pxp: Define PXP component interface
>    drm/i915/pxp: define PXP device flag and kconfig
>    drm/i915/pxp: allocate a vcs context for pxp usage
>    drm/i915/pxp: set KCR reg init during the boot time
>    drm/i915/pxp: enable PXP for integrated Gen12
>
> Huang, Sean Z (5):
>    drm/i915/pxp: Implement funcs to create the TEE channel
>    drm/i915/pxp: Create the arbitrary session after boot
>    drm/i915/pxp: Implement arb session teardown
>    drm/i915/pxp: Implement PXP irq handler
>    drm/i915/pxp: Enable PXP power management
>
> Vitaly Lubart (1):
>    mei: pxp: export pavp client to me client bus
>
>   drivers/gpu/drm/i915/Kconfig                  |  11 +
>   drivers/gpu/drm/i915/Makefile                 |   9 +
>   drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>   drivers/gpu/drm/i915/gem/i915_gem_context.c   |  34 +++
>   drivers/gpu/drm/i915/gem/i915_gem_context.h   |   6 +
>   .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
>   drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
>   .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   9 +
>   .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
>   drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
>   drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   7 +
>   drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   6 +
>   drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
>   drivers/gpu/drm/i915/i915_drv.c               |   7 +-
>   drivers/gpu/drm/i915/i915_drv.h               |  10 +
>   drivers/gpu/drm/i915/i915_pci.c               |   2 +
>   drivers/gpu/drm/i915/i915_reg.h               |   2 +
>   drivers/gpu/drm/i915/intel_device_info.h      |   1 +
>   drivers/gpu/drm/i915/pxp/intel_pxp.c          | 107 ++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp.h          |  54 ++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 227 +++++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  15 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.c      | 147 +++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.h      |  33 +++
>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  94 +++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  36 +++
>   drivers/gpu/drm/i915/pxp/intel_pxp_session.c  | 123 ++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_session.h  |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 200 +++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  29 +++
>   drivers/misc/mei/Kconfig                      |   2 +
>   drivers/misc/mei/Makefile                     |   1 +
>   drivers/misc/mei/pxp/Kconfig                  |  13 +
>   drivers/misc/mei/pxp/Makefile                 |   7 +
>   drivers/misc/mei/pxp/mei_pxp.c                | 230 ++++++++++++++++++
>   drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
>   include/drm/i915_component.h                  |   1 +
>   include/drm/i915_pxp_tee_interface.h          |  45 ++++
>   include/uapi/drm/i915_drm.h                   |  70 ++++++
>   40 files changed, 1685 insertions(+), 8 deletions(-)
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
>   create mode 100644 drivers/misc/mei/pxp/Kconfig
>   create mode 100644 drivers/misc/mei/pxp/Makefile
>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
>   create mode 100644 include/drm/i915_pxp_tee_interface.h
>
Lionel Landwerlin Feb. 12, 2021, 1:23 p.m. UTC | #2
I just gave a try to this new iteration and it's apparently failing to 
enable PXP on a machine with this pciID : 0x9a68.

-Lionel

On 06/02/2021 04:09, Daniele Ceraolo Spurio wrote:
> PXP (Protected Xe Path) is an i915 component, available on
> GEN12+, that helps to establish the hardware protected session
> and manage the status of the alive software session, as well
> as its life cycle.
>
> I'm taking over this series from Sean. I've significantly reworked the
> code since his last revisioni [1], including a different patch split, so
> I've reset the series revision count. I believe I've addressed most of
> the pending comments, but please point out aything I've missed.
>
> Still RFC for 2 reasons:
> - mutex usage needs a bit more reworking
> - very lightly tested
>
> [1] https://patchwork.freedesktop.org/series/84620/
>
> Cc: Huang Sean Z <sean.z.huang@intel.com>
> Cc: Gaurav Kumar <kumar.gaurav@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>
> Anshuman Gupta (1):
>    drm/i915/pxp: Add plane decryption support
>
> Bommu Krishnaiah (2):
>    drm/i915/uapi: introduce drm_i915_gem_create_ext
>    drm/i915/pxp: User interface for Protected buffer
>
> Daniele Ceraolo Spurio (5):
>    drm/i915/pxp: Define PXP component interface
>    drm/i915/pxp: define PXP device flag and kconfig
>    drm/i915/pxp: allocate a vcs context for pxp usage
>    drm/i915/pxp: set KCR reg init during the boot time
>    drm/i915/pxp: enable PXP for integrated Gen12
>
> Huang, Sean Z (5):
>    drm/i915/pxp: Implement funcs to create the TEE channel
>    drm/i915/pxp: Create the arbitrary session after boot
>    drm/i915/pxp: Implement arb session teardown
>    drm/i915/pxp: Implement PXP irq handler
>    drm/i915/pxp: Enable PXP power management
>
> Vitaly Lubart (1):
>    mei: pxp: export pavp client to me client bus
>
>   drivers/gpu/drm/i915/Kconfig                  |  11 +
>   drivers/gpu/drm/i915/Makefile                 |   9 +
>   drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>   drivers/gpu/drm/i915/gem/i915_gem_context.c   |  34 +++
>   drivers/gpu/drm/i915/gem/i915_gem_context.h   |   6 +
>   .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
>   drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
>   .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   9 +
>   .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
>   drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
>   drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   7 +
>   drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   6 +
>   drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
>   drivers/gpu/drm/i915/i915_drv.c               |   7 +-
>   drivers/gpu/drm/i915/i915_drv.h               |  10 +
>   drivers/gpu/drm/i915/i915_pci.c               |   2 +
>   drivers/gpu/drm/i915/i915_reg.h               |   2 +
>   drivers/gpu/drm/i915/intel_device_info.h      |   1 +
>   drivers/gpu/drm/i915/pxp/intel_pxp.c          | 107 ++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp.h          |  54 ++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 227 +++++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  15 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.c      | 147 +++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.h      |  33 +++
>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  94 +++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  36 +++
>   drivers/gpu/drm/i915/pxp/intel_pxp_session.c  | 123 ++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_session.h  |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 200 +++++++++++++++
>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>   drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  29 +++
>   drivers/misc/mei/Kconfig                      |   2 +
>   drivers/misc/mei/Makefile                     |   1 +
>   drivers/misc/mei/pxp/Kconfig                  |  13 +
>   drivers/misc/mei/pxp/Makefile                 |   7 +
>   drivers/misc/mei/pxp/mei_pxp.c                | 230 ++++++++++++++++++
>   drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
>   include/drm/i915_component.h                  |   1 +
>   include/drm/i915_pxp_tee_interface.h          |  45 ++++
>   include/uapi/drm/i915_drm.h                   |  70 ++++++
>   40 files changed, 1685 insertions(+), 8 deletions(-)
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
>   create mode 100644 drivers/misc/mei/pxp/Kconfig
>   create mode 100644 drivers/misc/mei/pxp/Makefile
>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
>   create mode 100644 include/drm/i915_pxp_tee_interface.h
>
Daniele Ceraolo Spurio Feb. 12, 2021, 3:10 p.m. UTC | #3
On 2/12/2021 5:23 AM, Lionel Landwerlin wrote:
> I just gave a try to this new iteration and it's apparently failing to 
> enable PXP on a machine with this pciID : 0x9a68.
>

What error are you seeing?

Daniele

> -Lionel
>
> On 06/02/2021 04:09, Daniele Ceraolo Spurio wrote:
>> PXP (Protected Xe Path) is an i915 component, available on
>> GEN12+, that helps to establish the hardware protected session
>> and manage the status of the alive software session, as well
>> as its life cycle.
>>
>> I'm taking over this series from Sean. I've significantly reworked the
>> code since his last revisioni [1], including a different patch split, so
>> I've reset the series revision count. I believe I've addressed most of
>> the pending comments, but please point out aything I've missed.
>>
>> Still RFC for 2 reasons:
>> - mutex usage needs a bit more reworking
>> - very lightly tested
>>
>> [1] https://patchwork.freedesktop.org/series/84620/
>>
>> Cc: Huang Sean Z <sean.z.huang@intel.com>
>> Cc: Gaurav Kumar <kumar.gaurav@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>>
>> Anshuman Gupta (1):
>>    drm/i915/pxp: Add plane decryption support
>>
>> Bommu Krishnaiah (2):
>>    drm/i915/uapi: introduce drm_i915_gem_create_ext
>>    drm/i915/pxp: User interface for Protected buffer
>>
>> Daniele Ceraolo Spurio (5):
>>    drm/i915/pxp: Define PXP component interface
>>    drm/i915/pxp: define PXP device flag and kconfig
>>    drm/i915/pxp: allocate a vcs context for pxp usage
>>    drm/i915/pxp: set KCR reg init during the boot time
>>    drm/i915/pxp: enable PXP for integrated Gen12
>>
>> Huang, Sean Z (5):
>>    drm/i915/pxp: Implement funcs to create the TEE channel
>>    drm/i915/pxp: Create the arbitrary session after boot
>>    drm/i915/pxp: Implement arb session teardown
>>    drm/i915/pxp: Implement PXP irq handler
>>    drm/i915/pxp: Enable PXP power management
>>
>> Vitaly Lubart (1):
>>    mei: pxp: export pavp client to me client bus
>>
>>   drivers/gpu/drm/i915/Kconfig                  |  11 +
>>   drivers/gpu/drm/i915/Makefile                 |   9 +
>>   drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>>   drivers/gpu/drm/i915/gem/i915_gem_context.c   |  34 +++
>>   drivers/gpu/drm/i915/gem/i915_gem_context.h   |   6 +
>>   .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
>>   drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
>>   .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   9 +
>>   .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
>>   drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
>>   drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   7 +
>>   drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   6 +
>>   drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
>>   drivers/gpu/drm/i915/i915_drv.c               |   7 +-
>>   drivers/gpu/drm/i915/i915_drv.h               |  10 +
>>   drivers/gpu/drm/i915/i915_pci.c               |   2 +
>>   drivers/gpu/drm/i915/i915_reg.h               |   2 +
>>   drivers/gpu/drm/i915/intel_device_info.h      |   1 +
>>   drivers/gpu/drm/i915/pxp/intel_pxp.c          | 107 ++++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp.h          |  54 ++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 227 +++++++++++++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  15 ++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.c      | 147 +++++++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.h      |  33 +++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  94 +++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  36 +++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_session.c  | 123 ++++++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_session.h  |  17 ++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 200 +++++++++++++++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>>   drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  29 +++
>>   drivers/misc/mei/Kconfig                      |   2 +
>>   drivers/misc/mei/Makefile                     |   1 +
>>   drivers/misc/mei/pxp/Kconfig                  |  13 +
>>   drivers/misc/mei/pxp/Makefile                 |   7 +
>>   drivers/misc/mei/pxp/mei_pxp.c                | 230 ++++++++++++++++++
>>   drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
>>   include/drm/i915_component.h                  |   1 +
>>   include/drm/i915_pxp_tee_interface.h          |  45 ++++
>>   include/uapi/drm/i915_drm.h                   |  70 ++++++
>>   40 files changed, 1685 insertions(+), 8 deletions(-)
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
>>   create mode 100644 drivers/misc/mei/pxp/Kconfig
>>   create mode 100644 drivers/misc/mei/pxp/Makefile
>>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
>>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
>>   create mode 100644 include/drm/i915_pxp_tee_interface.h
>>
>
Lionel Landwerlin Feb. 12, 2021, 3:13 p.m. UTC | #4
On 12/02/2021 17:10, Daniele Ceraolo Spurio wrote:
>
> On 2/12/2021 5:23 AM, Lionel Landwerlin wrote:
>> I just gave a try to this new iteration and it's apparently failing 
>> to enable PXP on a machine with this pciID : 0x9a68.
>>
>
> What error are you seeing?
>
> Daniele


Failure to create a protected GEM object, checking the HW register 
(GEN12_KCR_SIP), the session seems to not be enabled.


-Lionel


>
>> -Lionel
>>
>> On 06/02/2021 04:09, Daniele Ceraolo Spurio wrote:
>>> PXP (Protected Xe Path) is an i915 component, available on
>>> GEN12+, that helps to establish the hardware protected session
>>> and manage the status of the alive software session, as well
>>> as its life cycle.
>>>
>>> I'm taking over this series from Sean. I've significantly reworked the
>>> code since his last revisioni [1], including a different patch 
>>> split, so
>>> I've reset the series revision count. I believe I've addressed most of
>>> the pending comments, but please point out aything I've missed.
>>>
>>> Still RFC for 2 reasons:
>>> - mutex usage needs a bit more reworking
>>> - very lightly tested
>>>
>>> [1] https://patchwork.freedesktop.org/series/84620/
>>>
>>> Cc: Huang Sean Z <sean.z.huang@intel.com>
>>> Cc: Gaurav Kumar <kumar.gaurav@intel.com>
>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>>>
>>> Anshuman Gupta (1):
>>>    drm/i915/pxp: Add plane decryption support
>>>
>>> Bommu Krishnaiah (2):
>>>    drm/i915/uapi: introduce drm_i915_gem_create_ext
>>>    drm/i915/pxp: User interface for Protected buffer
>>>
>>> Daniele Ceraolo Spurio (5):
>>>    drm/i915/pxp: Define PXP component interface
>>>    drm/i915/pxp: define PXP device flag and kconfig
>>>    drm/i915/pxp: allocate a vcs context for pxp usage
>>>    drm/i915/pxp: set KCR reg init during the boot time
>>>    drm/i915/pxp: enable PXP for integrated Gen12
>>>
>>> Huang, Sean Z (5):
>>>    drm/i915/pxp: Implement funcs to create the TEE channel
>>>    drm/i915/pxp: Create the arbitrary session after boot
>>>    drm/i915/pxp: Implement arb session teardown
>>>    drm/i915/pxp: Implement PXP irq handler
>>>    drm/i915/pxp: Enable PXP power management
>>>
>>> Vitaly Lubart (1):
>>>    mei: pxp: export pavp client to me client bus
>>>
>>>   drivers/gpu/drm/i915/Kconfig                  |  11 +
>>>   drivers/gpu/drm/i915/Makefile                 |   9 +
>>>   drivers/gpu/drm/i915/display/intel_sprite.c   |  21 +-
>>>   drivers/gpu/drm/i915/gem/i915_gem_context.c   |  34 +++
>>>   drivers/gpu/drm/i915/gem/i915_gem_context.h   |   6 +
>>>   .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
>>>   drivers/gpu/drm/i915/gem/i915_gem_create.c    |  68 +++++-
>>>   .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   9 +
>>>   .../gpu/drm/i915/gem/i915_gem_object_types.h  |   5 +
>>>   drivers/gpu/drm/i915/gt/intel_gt.c            |   5 +
>>>   drivers/gpu/drm/i915/gt/intel_gt_irq.c        |   7 +
>>>   drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   6 +
>>>   drivers/gpu/drm/i915/gt/intel_gt_types.h      |   3 +
>>>   drivers/gpu/drm/i915/i915_drv.c               |   7 +-
>>>   drivers/gpu/drm/i915/i915_drv.h               |  10 +
>>>   drivers/gpu/drm/i915/i915_pci.c               |   2 +
>>>   drivers/gpu/drm/i915/i915_reg.h               |   2 +
>>>   drivers/gpu/drm/i915/intel_device_info.h      |   1 +
>>>   drivers/gpu/drm/i915/pxp/intel_pxp.c          | 107 ++++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp.h          |  54 ++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      | 227 +++++++++++++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h      |  15 ++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.c      | 147 +++++++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_irq.h      |  33 +++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |  94 +++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_pm.h       |  36 +++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_session.c  | 123 ++++++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_session.h  |  17 ++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.c      | 200 +++++++++++++++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_tee.h      |  17 ++
>>>   drivers/gpu/drm/i915/pxp/intel_pxp_types.h    |  29 +++
>>>   drivers/misc/mei/Kconfig                      |   2 +
>>>   drivers/misc/mei/Makefile                     |   1 +
>>>   drivers/misc/mei/pxp/Kconfig                  |  13 +
>>>   drivers/misc/mei/pxp/Makefile                 |   7 +
>>>   drivers/misc/mei/pxp/mei_pxp.c                | 230 
>>> ++++++++++++++++++
>>>   drivers/misc/mei/pxp/mei_pxp.h                |  18 ++
>>>   include/drm/i915_component.h                  |   1 +
>>>   include/drm/i915_pxp_tee_interface.h          |  45 ++++
>>>   include/uapi/drm/i915_drm.h                   |  70 ++++++
>>>   40 files changed, 1685 insertions(+), 8 deletions(-)
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
>>>   create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
>>>   create mode 100644 drivers/misc/mei/pxp/Kconfig
>>>   create mode 100644 drivers/misc/mei/pxp/Makefile
>>>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
>>>   create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
>>>   create mode 100644 include/drm/i915_pxp_tee_interface.h
>>>
>>
>