bus: fsl-mc: enhance Management Complex userspace support
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest4 patches 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | bus: fsl-mc: move fsl_mc_command struct in a uapi headerMAINTAINERS include/ include/ | +27 | 0 replies | |
| 2/4 | bus: fsl-mc: add fsl-mc userspace supportDocumentation/ drivers/ drivers/ +4 more | +248 | 0 replies | |
| 3/4 | bus: fsl-mc: add root dprc rescan attributeDocumentation/ MAINTAINERS drivers/ | +44 | 0 replies | |
| 4/4 | bus: fsl-mc: add bus rescan attributeDocumentation/ drivers/ drivers/ +1 more | +55 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/4] bus: fsl-mc: enhance Management Complex userspace support
This patch set adds userspace support in the fsl-mc bus along with a rescan attribute to the root DPRC container. Also, the patches here depend on 2 other patches submitted but not yet accepted:
- https://lkml.org/lkml/2018/10/2/593
- https://lkml.org/lkml/2018/10/1/747
An earlier discussion on this functionality can be found here:
https://lkml.org/lkml/2018/3/23/941
The FSL_MC_SEND_MC_COMMAND ioctl acts as a direct passthrough to the Management Complex (or MC) by passing fixed-length command/response pairs. Keeping in mind that the MC manages DPAA2 hardware resources and provides and object-based abstraction for sofware drivers, the proposed ioctl interface enables userspace tools to do the following:
- create and destroy DPAA2 objects
- manage the DPRC container that objects live in (by moving objects between containers)
- establish connections between different objects as needed
The ioctl interface is intended for dynamic usecases where DPAA2 objects need to be created on demand or destroyed so that the underlying hardware resources can be further repurposed. In static usecases, depending on the requirements, a firmware configuration file can be used to describe the needed DPAA2 objects, their attributes or any link between them.
Some examples of device drivers that probe on said DPAA2 objects are listed
below:
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/soc/fsl/dpio
- https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/drivers/net/ethernet/freescale/dpaa2
- https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git/tree/drivers/crypto/caam/
Having a low-level ioctl interface where the command is passed through to the MC without any intervention from the fsl-mc bus reduces the complexity added in the kernel while also making the command structure, in turn the ioctl, very stable.
Ioana Ciornei (4):
bus: fsl-mc: move fsl_mc_command struct in a uapi header
bus: fsl-mc: add fsl-mc userspace support
bus: fsl-mc: add root dprc rescan attribute
bus: fsl-mc: add bus rescan attribute
Documentation/ABI/stable/sysfs-bus-fsl-mc | 19 ++++ Documentation/ioctl/ioctl-number.txt | 1 + MAINTAINERS | 2 + drivers/bus/fsl-mc/Kconfig | 7 ++ drivers/bus/fsl-mc/Makefile | 3 + drivers/bus/fsl-mc/dprc-driver.c | 38 ++++++- drivers/bus/fsl-mc/fsl-mc-bus.c | 53 +++++++++ drivers/bus/fsl-mc/fsl-mc-private.h | 43 ++++++++ drivers/bus/fsl-mc/fsl-mc-uapi.c | 175 ++++++++++++++++++++++++++++++ include/linux/fsl/mc.h | 8 +- include/uapi/linux/fsl_mc.h | 34 ++++++ 11 files changed, 374 insertions(+), 9 deletions(-) create mode 100644 Documentation/ABI/stable/sysfs-bus-fsl-mc create mode 100644 drivers/bus/fsl-mc/fsl-mc-uapi.c create mode 100644 include/uapi/linux/fsl_mc.h
Signature · 1 line
1.9.1