Re: [PATCH 1/5] firmware: arm_scmi: always initialize protocols

From: Etienne Carriere
Date: Fri Oct 09 2020 - 08:32:11 EST


On Thu, 8 Oct 2020 at 21:17, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>
> On Thu, Oct 08, 2020 at 04:37:18PM +0200, Etienne Carriere wrote:
> > Remove the IDR replacement that prevent initializing an SCMI protocol
> > when it has already been initialized. This is needed when there are
> > several SCMI agents that do implement a given SCMI protocol unless
> > what only the related SCMI protocol communication is initialized only
> > for first probed agent.
> >
>
> Can you please elaborate on your usecase please. What do you mean by several
> SCMI agents here. OSPM is the only agent we are interested here. What
> other agents is this driver supposed to handle here. We allocate memory
> in init and calling init multiple times messes up the allocated and
> initialised structures.
>
> So NACK for this patch as it needs more work if we need this at all.
>

Hello Sudeep,

Considering a device with several SCMI servers spread over several co-processor
and possibly also in the Arm TZ secure world, each of these servers
uses a specific
SCMI channel. Without this change, each SCMI protocol gets initialized
only for the
first agent device that is probed.

My setup is also a bit specific. My device has several secure configuration
features that can individually be enabled or not. For example, configuring
domain X as secure makes some clocks reachable by Linux only through SCMI,
and configuring domain Y as secure makes other clocks reachable by Linux
only through SCMI. For flexibility, I expose domain X resources (here clocks)
to an Linux agent whereas domain Y resources (here clocks also) are
exposed to another agent, each agent with its specific transport/channel.
Enabling each agent node in the Linux FDT allows to define which SCMI clocks
get exposed and hence registered in the kernel.
Without the change proposed here, I cannot get the clocks exposed to both
agents when enabled as the SCMI clock protocol is initialized only for the 1st
probbed agent device.

Regards,
Etienne

> --
> Regards,
> Sudeep