[PATCH 0/4] soc: imx: add scu firmware api support

Oleksij Rempel
2018-05-01T05:59:04Z

Hi,

On Sat, Apr 28, 2018 at 02:46:12AM +0800, Dong Aisheng wrote:
> Unlike the former i.MX Architectures, the new generation i.MX8 SoCs
> (e.g. MX8QXP and MX8QM) contain a system controller which runs on a
> dedicated Cortex-M core to provide power, clock, Pad, and resource
> management. Communication between the host processor running
> an OS and the system controller happens through a SCU protocol.
> This patchset adds the SCU APIs which is implemented based on MU
> and will be used by different system components.
>
> It mainly consists of below parts:
> 1) MU library calls
> 1) Implementation of the IPC functions based on MUs (client side).
> 2) SCU firmware services APIs implementation ased on RPC calls which
> are mostly generated by SCU firmware

Hm... I fail to see the difference between remoteproc, virtio, rpmsg and other
existing frameworks in kernel with this functionality. Why do we need
vendor/soc specific framework once again?

> Dong Aisheng (4):
> soc: imx: add mu library functions support
> dt-bindings: arm: fsl: add mu binding doc
> dt-bindings: arm: fsl: add scu binding doc
> soc: imx: add SC firmware IPC and APIs
>
> .../devicetree/bindings/arm/freescale/fsl,mu.txt | 33 +
> .../devicetree/bindings/arm/freescale/fsl,scu.txt | 40 ++
> drivers/soc/imx/Kconfig | 7 +
> drivers/soc/imx/Makefile | 2 +
> drivers/soc/imx/imx_mu.c | 125 ++++
> drivers/soc/imx/sc/Makefile | 8 +
> drivers/soc/imx/sc/main/ipc.c | 270 ++++++++
> drivers/soc/imx/sc/main/rpc.h | 123 ++++
> drivers/soc/imx/sc/svc/irq/rpc.h | 41 ++
> drivers/soc/imx/sc/svc/irq/rpc_clnt.c | 58 ++
> drivers/soc/imx/sc/svc/misc/rpc.h | 58 ++
> drivers/soc/imx/sc/svc/misc/rpc_clnt.c | 368 ++++++++++
> drivers/soc/imx/sc/svc/pad/rpc.h | 55 ++
> drivers/soc/imx/sc/svc/pad/rpc_clnt.c | 412 +++++++++++
> drivers/soc/imx/sc/svc/pm/rpc.h | 58 ++
> drivers/soc/imx/sc/svc/pm/rpc_clnt.c | 393 +++++++++++
> drivers/soc/imx/sc/svc/rm/rpc.h | 70 ++
> drivers/soc/imx/sc/svc/rm/rpc_clnt.c | 612 +++++++++++++++++
> drivers/soc/imx/sc/svc/timer/rpc.h | 52 ++
> drivers/soc/imx/sc/svc/timer/rpc_clnt.c | 295 ++++++++
> include/soc/imx/mu.h | 21 +
> include/soc/imx/sc/ipc.h | 46 ++
> include/soc/imx/sc/scfw.h | 24 +
> include/soc/imx/sc/sci.h | 35 +
> include/soc/imx/sc/svc/irq/api.h | 139 ++++
> include/soc/imx/sc/svc/misc/api.h | 395 +++++++++++
> include/soc/imx/sc/svc/pad/api.h | 536 +++++++++++++++
> include/soc/imx/sc/svc/pm/api.h | 559 +++++++++++++++
> include/soc/imx/sc/svc/rm/api.h | 726 ++++++++++++++++++++
> include/soc/imx/sc/svc/timer/api.h | 265 +++++++
> include/soc/imx/sc/types.h | 764 +++++++++++++++++++++
> 31 files changed, 6590 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,mu.txt
> create mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
> create mode 100644 drivers/soc/imx/imx_mu.c
> create mode 100644 drivers/soc/imx/sc/Makefile
> create mode 100644 drivers/soc/imx/sc/main/ipc.c
> create mode 100644 drivers/soc/imx/sc/main/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/irq/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/irq/rpc_clnt.c
> create mode 100644 drivers/soc/imx/sc/svc/misc/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/misc/rpc_clnt.c
> create mode 100644 drivers/soc/imx/sc/svc/pad/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/pad/rpc_clnt.c
> create mode 100644 drivers/soc/imx/sc/svc/pm/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/pm/rpc_clnt.c
> create mode 100644 drivers/soc/imx/sc/svc/rm/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/rm/rpc_clnt.c
> create mode 100644 drivers/soc/imx/sc/svc/timer/rpc.h
> create mode 100644 drivers/soc/imx/sc/svc/timer/rpc_clnt.c
> create mode 100644 include/soc/imx/mu.h
> create mode 100644 include/soc/imx/sc/ipc.h
> create mode 100644 include/soc/imx/sc/scfw.h
> create mode 100644 include/soc/imx/sc/sci.h
> create mode 100644 include/soc/imx/sc/svc/irq/api.h
> create mode 100644 include/soc/imx/sc/svc/misc/api.h
> create mode 100644 include/soc/imx/sc/svc/pad/api.h
> create mode 100644 include/soc/imx/sc/svc/pm/api.h
> create mode 100644 include/soc/imx/sc/svc/rm/api.h
> create mode 100644 include/soc/imx/sc/svc/timer/api.h
> create mode 100644 include/soc/imx/sc/types.h
>
> --
> 2.7.4
>
>
>

--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180501/d310bbdb/attachment.sig>