Re: [PATCH v2 2/3] firmware: Keem Bay: Add support for Arm Trusted Firmware Service call

From: Michal Simek
Date: Fri Oct 02 2020 - 09:53:55 EST


Hi Sudeep,

On 02. 10. 20 12:58, Sudeep Holla wrote:
> Hi Michal,
>
> On Fri, Oct 02, 2020 at 10:23:02AM +0200, Michal Simek wrote:
>> Hi Sudeep,
>>
>> On 01. 10. 20 17:35, Sudeep Holla wrote:
>
> [...]
>
>>>
>>> What are the other uses of this KEEMBAY_SIP_* ?
>>> For now I tend to move this to the driver making use of it using
>>> arm_smccc_1_1_invoke directly if possible. I don't see the need for this
>>> to be separate driver. But do let us know the features implemented in the
>>> firmware. If it is not v1.1+, reasons for not upgrading as you need v1.1
>>> for some CPU errata implementation.
>>
>> This driver has been created based on my request to move it out the mmc
>> driver. It looks quite hacky to have arm_smccc_res and call
>> arm_smccc_smc() also with some IDs where it is visible that the part of
>> ID is just based on any spec.
>
> OK, driver is fine but no dt-bindings as it is discoverable. It can
> also be just a wrapper library instead as it needs no explicit
> initialisation like drivers to setup.

I am fine with it. Do we have any example which we can point him to?


>
>> Also in v1 he is just calling SMC. But maybe there is going a need to
>> call HVC instead which is something what device driver shouldn't decide
>> that's why IMHO doing step via firmware driver is much better approach.
>
> Agreed and one must use arm_smccc_get_conduit or something similar. No
> additional bindings for each and ever platform and driver that uses SMCCC
> please.
>
>> Of course if there is a better/cleaner way how this should be done I am
>> happy to get more information about it.
>>
>
> Let me know what you think about my thoughts stated above.


I am fine with it. The key point is to have these sort it out because I
see that a lot of drivers just simply call that SMCs from drivers which
is IMHO wrong.


BTW: I see you have added soc id reading which you are saying is the
part of smcc v1.2 but I can't see any implementation in TF-A. Is this
spec publicly available?

Thanks,
Michal