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

From: Will Deacon
Date: Tue May 05 2020 - 12:22:48 EST


On Tue, May 05, 2020 at 04:04:21PM +0100, Sudeep Holla wrote:
> 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 really gain much by separating PSCI from SMCCC? In other words, why
do we care about allowing them to be selected independently?

Will