Re: [PATCH] firmware: arm_scmi: fix psci dependency

From: Mark Rutland
Date: Tue May 05 2020 - 12:21:43 EST


On Tue, May 05, 2020 at 04:04:21PM +0100, Sudeep Holla wrote:
> Hi Arnd,
>
> On Tue, May 05, 2020 at 04:08:08PM +0200, Arnd Bergmann wrote:
> > When CONFIG_ARM_PSCI_FW is disabled but CONFIG_HAVE_ARM_SMCCC is enabled,
> > arm-scmi runs into a link failure:
> >
> > arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/smc.o: in function `smc_send_message':
> > smc.c:(.text+0x200): undefined reference to `arm_smccc_1_1_get_conduit'
> >
> > Use an inline helper to default to version v1.0 in the absence of psci.
> >
>
> Thanks for fixing this. I was thinking if we can separate PSCI and SMCCC
> quickly as a fix for this but I think he needs to be discussed in detail.
>
> I am fine with this fix as is and happy to apply to my tree if no one
> objects.
>
> Sorry but taking this patch as opportunity to discuss how to carry the
> dependency in future. Just a proposal,
>
> 1. Introduce a DT node for SMCCC v1.2+
> 2. The new SMCCC driver(strictly speaking library/few APIs) can probe
> independent of PSCI if DT node is present
> 3. Else we fallback on PSCI and detect the SMCCC version for v1.1 and
> v1.2
> 4. Assume v1.0 if
> a. PSCI FEATURE returns NOT_SUPPORTED for ARM_SMCCC_VERSION_FUNC_ID
> b. CONFIG_ARM_PSCI{,_FW} is not defined
>
> Mark/Will/Marc,
>
> Any other use-case config missed above ?

Do we need to support SMCCC without PSCI? Is anyone goingto build a
sysyem with SMCCC but no PSCI functionality?

If not, then given we can always probe SMCCC from PSCI (for both ACPI
and DT), I'd prefer to support only support doing things that way
around. i.e. have SMCCC depend on PSCI.

Otherwise I suspect we're inviting more problems than a dependency on
PSCI.

Thanks,
Mark.