
Hi Alexey,
On Fri, 7 Jul 2023 at 09:43, Alexey Romanov AVRomanov@sberdevices.ru wrote:
Hello, Simon!
On Thu, Jul 06, 2023 at 09:58:02AM -0600, Simon Glass wrote:
Hi Alexey,
On Thu, 6 Jul 2023 at 14:16, Alexey Romanov avromanov@sberdevices.ru wrote:
At the moment, only smc API is a set of functions in arch/arm/mach-meson/sm.c. This approach is hard to configure and also doesni't contain any generic API for calling smc.
This patch add Meson SM driver with generic API (struct meson_sm_ops):
- sm_call()
- sm_call_write()
- sm_call_read()
A typical driver usage example is shown here:
- uclass_get_device_by_driver(UCLASS_FIRMWARE, "secure-monitor", &dev);
- handle = meson_sm_get_handle(dev);
- handle->ops.sm_call(dev, cmd, ...);
Signed-off-by: Alexey Romanov avromanov@sberdevices.ru
arch/arm/mach-meson/Kconfig | 1 + drivers/firmware/Kconfig | 10 ++ drivers/firmware/Makefile | 1 + drivers/firmware/meson/Kconfig | 6 + drivers/firmware/meson/Makefile | 3 + drivers/firmware/meson/meson_sm.c | 217 ++++++++++++++++++++++++++++++ include/meson/sm_handle.h | 38 ++++++ 7 files changed, 276 insertions(+) create mode 100644 drivers/firmware/meson/Kconfig create mode 100644 drivers/firmware/meson/Makefile create mode 100644 drivers/firmware/meson/meson_sm.c create mode 100644 include/meson/sm_handle.h
Please can you use the remoteproc uclass for this and add a proper driver?
I don't see it architecturally well. Can you explain please?
This driver is just ARM SMC fw interface. There seems to be nothing to do here for remoteproc uclass.
Well you seem to be implementing a remote CPU interface, which is what remoteproc is for. How does Linux do this?
Also there is a pending series on FFA - is that related? It uses smc from what I can tell.
Regards, Simon