linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] Add support for AMT over WLAN
@ 2021-03-22 20:41 Emmanuel Grumbach
  2021-03-22 20:41 ` [PATCH 1/5] mei: allow map and unmap of client dma buffer only for disconnected client Emmanuel Grumbach
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Emmanuel Grumbach @ 2021-03-22 20:41 UTC (permalink / raw)
  To: kvalo; +Cc: johannes, linux-wireless, luca, Emmanuel Grumbach

This patch series adds support for AMT over WLAN.
Information about Intel Active Management Technology is
available on the net, but in a nutshell, it is an application
running on an embedded CPU in the chipset. This application
can provide remote control to the system even when no OS is,
present or not even installed. By control, we mean, KVM,
the possibility to attach a remote driver, power up / down
/ reset the machine and other options.

When the host uses wireless, the embedded CPU can't access
the wireless device and hence, the traffic for AMT must be
routed through the host. The AMT <-> WLAN driver interface
is explained at lengh inside the patches. Basically, there
is a memory region that is mapped to a PCI devices that can
read / write to that memory and sends the data to the embedded
CPU. The driver for this PCI device is mei. We needed to add
code for that driver, those patches are in this series and
need to be routed through wireless-drivers tree as requested
by Greg KH.
There is also a cfg80211 patch that I should have sent earlier
to Johannes. I include this here. Hopefully, it'll not cause
trouble.

Note about how to use this new feature:
In order to fully use this new feature, we need to add a few
vendor commands that are not included in this series. The
upstream process for those commands will take some more time
but it is definitely planned. The motivation to use vendor
commands as opposed to regular nl80211 APIs is that we do not
expect any other vendor to need similar APIs. We had no control
on the AMT APIs and this is why we needed to add vendor commands
for flows that differ just a tiny bit from the regular flow. For
example, AMT needs to know when we are associated, but it
requires to know whether we are associated in WPA or in WPA2.
This is not known to the kernel, so we, unfortunately, had
to add a vendor command for this. This is just an example.

Integration with the connection manager is required to be able
to use this new feature.
In case the device is controlled by AMT and is actively used
by AMT, AMT will not release the device. To properly reflect
this state, we report hardware RF-Kill to the stack, but we
add a reason saying that we do not own the device. The
connection manager can then check what AP AMT is connected to
and signal to AMT that it can ensure the connetion to that
same AP can be kept. AMT will then release the device allowing
the host to connect to that AP. Doing this transition fast
enough will allow not to break the TCP connections that AMT
maintains.

I worked with Ayala Beker on the iwlwifi part of this feature.

Please do not apply those patches, they'll be part of a regular
pull request from Luca.

Johannes, feel free to pick the cfg80211 patch although then, it
will require to merge mac80211-next into wireless-drivers-next so
maybe it's better to route it through Kalle as well?

Alexander Usyskin (1):
  mei: bus: add client dma interface

Emmanuel Grumbach (3):
  cfg80211: allow to specifying a reason for hw_rfkill
  iwlwifi: mei: add the driver to allow cooperation with CSME
  iwlwifi: integrate with iwlmei

Tomas Winkler (1):
  mei: allow map and unmap of client dma buffer only for disconnected
    client

 drivers/misc/mei/bus.c                        |   67 +-
 drivers/misc/mei/client.c                     |   20 +-
 drivers/misc/mei/hw.h                         |    5 +
 drivers/net/wireless/intel/iwlwifi/Kconfig    |   13 +
 drivers/net/wireless/intel/iwlwifi/Makefile   |    2 +
 .../wireless/intel/iwlwifi/iwl-nvm-parse.c    |   61 +
 .../wireless/intel/iwlwifi/iwl-nvm-parse.h    |   11 +-
 .../net/wireless/intel/iwlwifi/iwl-trans.h    |    2 +
 .../net/wireless/intel/iwlwifi/mei/Makefile   |    8 +
 .../net/wireless/intel/iwlwifi/mei/internal.h |   20 +
 .../net/wireless/intel/iwlwifi/mei/iwl-mei.h  |  440 ++++
 drivers/net/wireless/intel/iwlwifi/mei/main.c | 2026 +++++++++++++++++
 drivers/net/wireless/intel/iwlwifi/mei/net.c  |  409 ++++
 drivers/net/wireless/intel/iwlwifi/mei/sap.h  |  736 ++++++
 .../wireless/intel/iwlwifi/mei/trace-data.h   |   69 +
 .../net/wireless/intel/iwlwifi/mei/trace.c    |   15 +
 .../net/wireless/intel/iwlwifi/mei/trace.h    |   62 +
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c   |    3 +-
 .../net/wireless/intel/iwlwifi/mvm/mac80211.c |   42 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h  |   70 +
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c  |  208 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c   |    7 +-
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c |   25 +
 .../net/wireless/intel/iwlwifi/pcie/trans.c   |   16 +-
 include/linux/mei_cl_bus.h                    |    3 +
 include/net/cfg80211.h                        |   11 +-
 net/wireless/core.c                           |    7 +-
 27 files changed, 4322 insertions(+), 36 deletions(-)
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/Makefile
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/internal.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/main.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/net.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/sap.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace-data.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace.h

-- 
2.25.1


^ permalink raw reply	[flat|nested] 10+ messages in thread
* [RESEND PATCH 0/5] Add support for AMT over WLAN
@ 2021-03-22 20:46 Emmanuel Grumbach
  2021-03-22 20:46 ` [PATCH 4/5] iwlwifi: mei: add the driver to allow cooperation with CSME Emmanuel Grumbach
  0 siblings, 1 reply; 10+ messages in thread
From: Emmanuel Grumbach @ 2021-03-22 20:46 UTC (permalink / raw)
  To: kvalo; +Cc: johannes, linux-wireless, luca, Emmanuel Grumbach

This patch series adds support for AMT over WLAN.
Information about Intel Active Management Technology is
available on the net, but in a nutshell, it is an application
running on an embedded CPU in the chipset. This application
can provide remote control to the system even when no OS is,
present or not even installed. By control, we mean, KVM,
the possibility to attach a remote driver, power up / down
/ reset the machine and other options.

When the host uses wireless, the embedded CPU can't access
the wireless device and hence, the traffic for AMT must be
routed through the host. The AMT <-> WLAN driver interface
is explained at lengh inside the patches. Basically, there
is a memory region that is mapped to a PCI devices that can
read / write to that memory and sends the data to the embedded
CPU. The driver for this PCI device is mei. We needed to add
code for that driver, those patches are in this series and
need to be routed through wireless-drivers tree as requested
by Greg KH.
There is also a cfg80211 patch that I should have sent earlier
to Johannes. I include this here. Hopefully, it'll not cause
trouble.

Note about how to use this new feature:
In order to fully use this new feature, we need to add a few
vendor commands that are not included in this series. The
upstream process for those commands will take some more time
but it is definitely planned. The motivation to use vendor
commands as opposed to regular nl80211 APIs is that we do not
expect any other vendor to need similar APIs. We had no control
on the AMT APIs and this is why we needed to add vendor commands
for flows that differ just a tiny bit from the regular flow. For
example, AMT needs to know when we are associated, but it
requires to know whether we are associated in WPA or in WPA2.
This is not known to the kernel, so we, unfortunately, had
to add a vendor command for this. This is just an example.

Integration with the connection manager is required to be able
to use this new feature.
In case the device is controlled by AMT and is actively used
by AMT, AMT will not release the device. To properly reflect
this state, we report hardware RF-Kill to the stack, but we
add a reason saying that we do not own the device. The
connection manager can then check what AP AMT is connected to
and signal to AMT that it can ensure the connetion to that
same AP can be kept. AMT will then release the device allowing
the host to connect to that AP. Doing this transition fast
enough will allow not to break the TCP connections that AMT
maintains.

I worked with Ayala Beker on the iwlwifi part of this feature.

Please do not apply those patches, they'll be part of a regular
pull request from Luca.

Johannes, feel free to pick the cfg80211 patch although then, it
will require to merge mac80211-next into wireless-drivers-next so
maybe it's better to route it through Kalle as well?

Alexander Usyskin (1):
  mei: bus: add client dma interface

Emmanuel Grumbach (3):
  cfg80211: allow to specifying a reason for hw_rfkill
  iwlwifi: mei: add the driver to allow cooperation with CSME
  iwlwifi: integrate with iwlmei

Tomas Winkler (1):
  mei: allow map and unmap of client dma buffer only for disconnected
    client

 drivers/misc/mei/bus.c                        |   67 +-
 drivers/misc/mei/client.c                     |   20 +-
 drivers/misc/mei/hw.h                         |    5 +
 drivers/net/wireless/intel/iwlwifi/Kconfig    |   13 +
 drivers/net/wireless/intel/iwlwifi/Makefile   |    2 +
 .../wireless/intel/iwlwifi/iwl-nvm-parse.c    |   61 +
 .../wireless/intel/iwlwifi/iwl-nvm-parse.h    |   11 +-
 .../net/wireless/intel/iwlwifi/iwl-trans.h    |    2 +
 .../net/wireless/intel/iwlwifi/mei/Makefile   |    8 +
 .../net/wireless/intel/iwlwifi/mei/internal.h |   20 +
 .../net/wireless/intel/iwlwifi/mei/iwl-mei.h  |  440 ++++
 drivers/net/wireless/intel/iwlwifi/mei/main.c | 2026 +++++++++++++++++
 drivers/net/wireless/intel/iwlwifi/mei/net.c  |  409 ++++
 drivers/net/wireless/intel/iwlwifi/mei/sap.h  |  736 ++++++
 .../wireless/intel/iwlwifi/mei/trace-data.h   |   69 +
 .../net/wireless/intel/iwlwifi/mei/trace.c    |   15 +
 .../net/wireless/intel/iwlwifi/mei/trace.h    |   62 +
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c   |    3 +-
 .../net/wireless/intel/iwlwifi/mvm/mac80211.c |   42 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h  |   70 +
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c  |  208 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c   |    7 +-
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c |   25 +
 .../net/wireless/intel/iwlwifi/pcie/trans.c   |   16 +-
 include/linux/mei_cl_bus.h                    |    3 +
 include/net/cfg80211.h                        |   11 +-
 net/wireless/core.c                           |    7 +-
 27 files changed, 4322 insertions(+), 36 deletions(-)
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/Makefile
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/internal.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/main.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/net.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/sap.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace-data.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/mei/trace.h

-- 
2.25.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-03-22 20:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-22 20:41 [PATCH 0/5] Add support for AMT over WLAN Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 1/5] mei: allow map and unmap of client dma buffer only for disconnected client Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 2/5] mei: bus: add client dma interface Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 3/5] cfg80211: allow to specifying a reason for hw_rfkill Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 3/4] iwlwifi: mei: add the driver to allow cooperation with CSME Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 4/4] iwlwifi: integrate with iwlmei Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 4/5] iwlwifi: mei: add the driver to allow cooperation with CSME Emmanuel Grumbach
2021-03-22 20:41 ` [PATCH 5/5] iwlwifi: integrate with iwlmei Emmanuel Grumbach
2021-03-22 20:47 ` [PATCH 0/5] Add support for AMT over WLAN Emmanuel Grumbach
2021-03-22 20:46 [RESEND PATCH " Emmanuel Grumbach
2021-03-22 20:46 ` [PATCH 4/5] iwlwifi: mei: add the driver to allow cooperation with CSME Emmanuel Grumbach

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).