Skip to contentSkip to conversation

misc/mei: Allow building Intel ME interface on non-x86

PATCH In review Simon Richter 2 participants 6 messages Jan 7 – Jan 13 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

v2 cover Intel MEI Kconfig cleanups

Hi,

this enables GPU firmware updates on Intel dGPUs plugged into non-x86 machines. The most important patches are the first and last.

The second patch switches the ME interfaces for GPUs to use !=n tests, so it is possible for them to be builtins when the GPU drivers themselves are modules (as is likely). MEI is built-in by default on x86_64 (and Atom).

This might need some discussion what is desirable here:

- this is a strong dependency from an "early" directory (misc/mei) to a later one (gpu/drm), causing backtracking
- does it make sense for MEI to be built-in by default, or should it default to being a module?
- is the strong dependency desired because if the code is compiled as built-in, it will not be used until the module is loaded?

There is no strong functional dependency here, no symbol references, as these devices are enumerated over an auxiliary bus.

Also, enable building without the GPU drivers for compile testing.

No stable backport.

Simon

Simon Richter (4):
misc/mei: Allow building Intel ME interface on non-x86 misc/mei: Decouple ME interfaces from GPU drivers misc/mei: Allow building standalone for compile testing misc/mei: gsc_proxy: add dependency on Xe driver

 drivers/misc/mei/Kconfig           | 6 +++---
 drivers/misc/mei/gsc_proxy/Kconfig | 2 +-
 drivers/misc/mei/hdcp/Kconfig      | 2 +-
 drivers/misc/mei/pxp/Kconfig       | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

base-commit: f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da

Signature · 1 line
2.47.3
#2 lore raw

PATCH v2 1/4 misc/mei: Allow building Intel ME interface on non-x86

The xe driver supports dGPUs which can be plugged into non-x86 machines, and exposes a MEI GSC interface, so this driver is no longer x86 only.

Cc Usyskin, Alexander <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/misc/mei/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/misc/mei/Kconfig +1 -1
index f4eb307cd35e..6da518f3b73c 100644
@@ -2,7 +2,7 @@
 # Copyright (c) 2003-2019, Intel Corporation. All rights reserved.
 config INTEL_MEI
 	tristate "Intel Management Engine Interface"
-	depends on X86 && PCI
+	depends on PCI
 	default X86_64 || MATOM
 	help
 	  The Intel Management Engine (Intel ME) provides Manageability,
Signature · 1 line
2.47.3
#3 lore raw

PATCH v2 2/4 misc/mei: Decouple ME interfaces from GPU drivers

In reply to Simon Richter

These are enumerated via an auxiliary bus, so there is no functional dependency between these drivers, therefore allow compiling MEI as builtin even when i915/xe are built as modules.

Cc Usyskin, Alexander <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/misc/mei/Kconfig           | 4 ++--
 drivers/misc/mei/gsc_proxy/Kconfig | 2 +-
 drivers/misc/mei/hdcp/Kconfig      | 2 +-
 drivers/misc/mei/pxp/Kconfig       | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)
drivers/misc/mei/Kconfig +2 -2
index 6da518f3b73c..a62992909f85 100644
@@ -49,7 +49,7 @@ config INTEL_MEI_TXE
 config INTEL_MEI_GSC
 	tristate "Intel MEI GSC embedded device"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915 || DRM_XE
+	depends on DRM_I915!=n || DRM_XE!=n
 	help
 	  Intel auxiliary driver for GSC devices embedded in Intel graphics devices.
 
@@ -84,7 +84,7 @@ config INTEL_MEI_VSC
 config INTEL_MEI_LB
 	tristate "Intel Late Binding (LB) support on ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_XE
+	depends on DRM_XE!=n
 	help
 	  Enable support for Intel Late Binding (LB) via the MEI interface.
 
drivers/misc/mei/gsc_proxy/Kconfig +1 -1
index ac78b9d1eccd..30811117fc65 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_GSC_PROXY
 	tristate "Intel GSC Proxy services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915
+	depends on DRM_I915!=n
 	help
          MEI Support for GSC Proxy Services on Intel platforms.
 
drivers/misc/mei/hdcp/Kconfig +1 -1
index 631dd9651d7c..a9af4918e5b2 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_HDCP
 	tristate "Intel HDCP2.2 services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915 || DRM_XE
+	depends on DRM_I915!=n || DRM_XE!=n
 	help
 	  MEI Support for HDCP2.2 Services on Intel platforms.
 
drivers/misc/mei/pxp/Kconfig +1 -1
index aa2dece4a927..d0f8bb6aa2de 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_PXP
 	tristate "Intel PXP services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915 || DRM_XE
+	depends on DRM_I915!=n || DRM_XE!=n
 	help
 	  MEI Support for PXP Services on Intel platforms.
 
Signature · 1 line
2.47.3
#4 lore raw

PATCH v2 3/4 misc/mei: Allow building standalone for compile testing

In reply to Simon Richter

While this is not a particularly useful configuration, the MEI code should compile even when no drivers for a GPU containing a management engine are built.

Cc Usyskin, Alexander <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/misc/mei/Kconfig           | 4 ++--
 drivers/misc/mei/gsc_proxy/Kconfig | 2 +-
 drivers/misc/mei/hdcp/Kconfig      | 2 +-
 drivers/misc/mei/pxp/Kconfig       | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)
drivers/misc/mei/Kconfig +2 -2
index a62992909f85..5902dd1ee44b 100644
@@ -49,7 +49,7 @@ config INTEL_MEI_TXE
 config INTEL_MEI_GSC
 	tristate "Intel MEI GSC embedded device"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915!=n || DRM_XE!=n
+	depends on DRM_I915!=n || DRM_XE!=n || COMPILE_TEST
 	help
 	  Intel auxiliary driver for GSC devices embedded in Intel graphics devices.
 
@@ -84,7 +84,7 @@ config INTEL_MEI_VSC
 config INTEL_MEI_LB
 	tristate "Intel Late Binding (LB) support on ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_XE!=n
+	depends on DRM_XE!=n || COMPILE_TEST
 	help
 	  Enable support for Intel Late Binding (LB) via the MEI interface.
 
drivers/misc/mei/gsc_proxy/Kconfig +1 -1
index 30811117fc65..b80024c5189b 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_GSC_PROXY
 	tristate "Intel GSC Proxy services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915!=n
+	depends on DRM_I915!=n || COMPILE_TEST
 	help
          MEI Support for GSC Proxy Services on Intel platforms.
 
drivers/misc/mei/hdcp/Kconfig +1 -1
index a9af4918e5b2..b9d5205c5b1a 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_HDCP
 	tristate "Intel HDCP2.2 services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915!=n || DRM_XE!=n
+	depends on DRM_I915!=n || DRM_XE!=n || COMPILE_TEST
 	help
 	  MEI Support for HDCP2.2 Services on Intel platforms.
 
drivers/misc/mei/pxp/Kconfig +1 -1
index d0f8bb6aa2de..2c5c00dc4b6f 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_PXP
 	tristate "Intel PXP services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915!=n || DRM_XE!=n
+	depends on DRM_I915!=n || DRM_XE!=n || COMPILE_TEST
 	help
 	  MEI Support for PXP Services on Intel platforms.
 
Signature · 1 line
2.47.3
#5 lore raw

PATCH v2 4/4 misc/mei: gsc_proxy: add dependency on Xe driver

In reply to Simon Richter

This driver is useful if at least one DRM driver registers an auxiliary device for the ME interface. With the addition of Xe, this is no longer just i915.

Cc Usyskin, Alexander <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/misc/mei/gsc_proxy/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/misc/mei/gsc_proxy/Kconfig +1 -1
index b80024c5189b..bd8f955f548e 100644
@@ -4,7 +4,7 @@
 config INTEL_MEI_GSC_PROXY
 	tristate "Intel GSC Proxy services of ME Interface"
 	depends on INTEL_MEI_ME
-	depends on DRM_I915!=n || COMPILE_TEST
+	depends on DRM_I915!=n || DRM_XE!=n || COMPILE_TEST
 	help
          MEI Support for GSC Proxy Services on Intel platforms.
 
Signature · 1 line
2.47.3
maintainer Acked-by on the v2 series
#6 lore raw

RE: [PATCH v2 0/4] Intel MEI Kconfig cleanups

In reply to Simon Richter
Quoted 11 lines

Subject: [PATCH v2 0/4] Intel MEI Kconfig cleanups

Hi,

this enables GPU firmware updates on Intel dGPUs plugged into non-x86 machines. The most important patches are the first and last.

The second patch switches the ME interfaces for GPUs to use !=n tests, so it is possible for them to be builtins when the GPU drivers themselves are modules (as is likely). MEI is built-in by default on x86_64 (and Atom).

Quoted 6 lines

This might need some discussion what is desirable here:

- this is a strong dependency from an "early" directory (misc/mei) to a later one (gpu/drm), causing backtracking
- does it make sense for MEI to be built-in by default, or should it default to being a module?

Usually module is enough, but there are some embedded systems that requires it as early as possible.

Quoted 11 lines

- is the strong dependency desired because if the code is compiled as built-in, it will not be used until the module is loaded?

There is no strong functional dependency here, no symbol references, as these devices are enumerated over an auxiliary bus.

Also, enable building without the GPU drivers for compile testing.

No stable backport.

Simon

Series looks reasonable to me now.

Quoted 17 lines

Simon Richter (4):
misc/mei: Allow building Intel ME interface on non-x86 misc/mei: Decouple ME interfaces from GPU drivers misc/mei: Allow building standalone for compile testing misc/mei: gsc_proxy: add dependency on Xe driver

 drivers/misc/mei/Kconfig           | 6 +++---
 drivers/misc/mei/gsc_proxy/Kconfig | 2 +-
 drivers/misc/mei/hdcp/Kconfig      | 2 +-
 drivers/misc/mei/pxp/Kconfig       | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

base-commit: f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da --
2.47.3