[v3,0/4] stm32mp15: update remoteproc to support SCMI Device tree

Message ID 20230512093926.661509-1-arnaud.pouliquen@foss.st.com
Headers
Series stm32mp15: update remoteproc to support SCMI Device tree |

Message

Arnaud POULIQUEN May 12, 2023, 9:39 a.m. UTC
  Update vs V2[1]:
---------------
- update yaml to remove label in examples
- fix error management for  devm_reset_control_get_optional(dev, "hold_boot")
- rebased on commit ac9a78681b92 ("Linux 6.4-rc1")

[1]https://lore.kernel.org/lkml/20230504094641.870378-1-arnaud.pouliquen@foss.st.com/T/


Description:
-----------
This series updates the stm32_rproc driver and associated DT node to
support device tree configuration with and without SCMI server. 
The impact is mainly on the MCU hold boot management.

Three configurations have to be supported:

1) Configuration without OP-TEE SCMI (legacy): Trusted context not activated
- The MCU reset is controlled through the Linux RCC reset driver.
- The MCU HOLD BOOT is controlled through The RCC sysconf.

2) Configuration with SCMI server: Trusted context activated
- The MCU reset is controlled through the SCMI reset service.
- The MCU HOLD BOOT is no more controlled through a SMC call service but
  through the SCMI reset service.

3) Configuration with OP-TEE SMC call (deprecated): Trusted context activated
- The MCU reset is controlled through the Linux RCC reset driver.
- The MCU HOLD BOOT is controlled through The SMC call.

In consequence this series:
- adds the use of the SCMI reset service to manage the MCU hold boot,
- determines the configuration to use depending on the presence of the
  "reset-names" property
  if ( "reset-names" property contains "hold_boot")
  then use reset_control services
  else use regmap access based on "st,syscfg-holdboot" property.
- set the DT st,syscfg-tz property as deprecated

Arnaud Pouliquen (4):
  dt-bindings: remoteproc: st,stm32-rproc: Rework reset declarations
  remoteproc: stm32: Allow hold boot management by the SCMI reset
    controller
  ARM: dts: stm32: Update reset declarations
  ARM: dts: stm32: fix m4_rproc references to use SCMI

 .../bindings/remoteproc/st,stm32-rproc.yaml   | 44 +++++++++--
 arch/arm/boot/dts/stm32mp151.dtsi             |  2 +-
 arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts    |  6 +-
 arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts    |  6 +-
 arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts    |  6 +-
 arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts    |  6 +-
 drivers/remoteproc/stm32_rproc.c              | 76 ++++++++++++++-----
 7 files changed, 111 insertions(+), 35 deletions(-)
  

Comments

Mathieu Poirier May 15, 2023, 5:27 p.m. UTC | #1
On Fri, May 12, 2023 at 11:39:22AM +0200, Arnaud Pouliquen wrote:
> Update vs V2[1]:
> ---------------
> - update yaml to remove label in examples
> - fix error management for  devm_reset_control_get_optional(dev, "hold_boot")
> - rebased on commit ac9a78681b92 ("Linux 6.4-rc1")
> 
> [1]https://lore.kernel.org/lkml/20230504094641.870378-1-arnaud.pouliquen@foss.st.com/T/
> 
> 
> Description:
> -----------
> This series updates the stm32_rproc driver and associated DT node to
> support device tree configuration with and without SCMI server. 
> The impact is mainly on the MCU hold boot management.
> 
> Three configurations have to be supported:
> 
> 1) Configuration without OP-TEE SCMI (legacy): Trusted context not activated
> - The MCU reset is controlled through the Linux RCC reset driver.
> - The MCU HOLD BOOT is controlled through The RCC sysconf.
> 
> 2) Configuration with SCMI server: Trusted context activated
> - The MCU reset is controlled through the SCMI reset service.
> - The MCU HOLD BOOT is no more controlled through a SMC call service but
>   through the SCMI reset service.
> 
> 3) Configuration with OP-TEE SMC call (deprecated): Trusted context activated
> - The MCU reset is controlled through the Linux RCC reset driver.
> - The MCU HOLD BOOT is controlled through The SMC call.
> 
> In consequence this series:
> - adds the use of the SCMI reset service to manage the MCU hold boot,
> - determines the configuration to use depending on the presence of the
>   "reset-names" property
>   if ( "reset-names" property contains "hold_boot")
>   then use reset_control services
>   else use regmap access based on "st,syscfg-holdboot" property.
> - set the DT st,syscfg-tz property as deprecated
> 
> Arnaud Pouliquen (4):
>   dt-bindings: remoteproc: st,stm32-rproc: Rework reset declarations
>   remoteproc: stm32: Allow hold boot management by the SCMI reset
>     controller
>   ARM: dts: stm32: Update reset declarations
>   ARM: dts: stm32: fix m4_rproc references to use SCMI
> 
>  .../bindings/remoteproc/st,stm32-rproc.yaml   | 44 +++++++++--
>  arch/arm/boot/dts/stm32mp151.dtsi             |  2 +-
>  arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts    |  6 +-
>  arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts    |  6 +-
>  arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts    |  6 +-
>  arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts    |  6 +-
>  drivers/remoteproc/stm32_rproc.c              | 76 ++++++++++++++-----
>  7 files changed, 111 insertions(+), 35 deletions(-)
> 

I have applied patch 1 and 2.  Unless Alexandre wants to proceed differently,
patches 3 and 4 should go through his tree.

Thanks,
Mathieu

> -- 
> 2.25.1
>
  
Alexandre TORGUE May 16, 2023, 2:33 p.m. UTC | #2
Hi Mathieu

On 5/15/23 19:27, Mathieu Poirier wrote:
> On Fri, May 12, 2023 at 11:39:22AM +0200, Arnaud Pouliquen wrote:
>> Update vs V2[1]:
>> ---------------
>> - update yaml to remove label in examples
>> - fix error management for  devm_reset_control_get_optional(dev, "hold_boot")
>> - rebased on commit ac9a78681b92 ("Linux 6.4-rc1")
>>
>> [1]https://lore.kernel.org/lkml/20230504094641.870378-1-arnaud.pouliquen@foss.st.com/T/
>>
>>
>> Description:
>> -----------
>> This series updates the stm32_rproc driver and associated DT node to
>> support device tree configuration with and without SCMI server.
>> The impact is mainly on the MCU hold boot management.
>>
>> Three configurations have to be supported:
>>
>> 1) Configuration without OP-TEE SCMI (legacy): Trusted context not activated
>> - The MCU reset is controlled through the Linux RCC reset driver.
>> - The MCU HOLD BOOT is controlled through The RCC sysconf.
>>
>> 2) Configuration with SCMI server: Trusted context activated
>> - The MCU reset is controlled through the SCMI reset service.
>> - The MCU HOLD BOOT is no more controlled through a SMC call service but
>>    through the SCMI reset service.
>>
>> 3) Configuration with OP-TEE SMC call (deprecated): Trusted context activated
>> - The MCU reset is controlled through the Linux RCC reset driver.
>> - The MCU HOLD BOOT is controlled through The SMC call.
>>
>> In consequence this series:
>> - adds the use of the SCMI reset service to manage the MCU hold boot,
>> - determines the configuration to use depending on the presence of the
>>    "reset-names" property
>>    if ( "reset-names" property contains "hold_boot")
>>    then use reset_control services
>>    else use regmap access based on "st,syscfg-holdboot" property.
>> - set the DT st,syscfg-tz property as deprecated
>>
>> Arnaud Pouliquen (4):
>>    dt-bindings: remoteproc: st,stm32-rproc: Rework reset declarations
>>    remoteproc: stm32: Allow hold boot management by the SCMI reset
>>      controller
>>    ARM: dts: stm32: Update reset declarations
>>    ARM: dts: stm32: fix m4_rproc references to use SCMI
>>
>>   .../bindings/remoteproc/st,stm32-rproc.yaml   | 44 +++++++++--
>>   arch/arm/boot/dts/stm32mp151.dtsi             |  2 +-
>>   arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts    |  6 +-
>>   arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts    |  6 +-
>>   arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts    |  6 +-
>>   arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts    |  6 +-
>>   drivers/remoteproc/stm32_rproc.c              | 76 ++++++++++++++-----
>>   7 files changed, 111 insertions(+), 35 deletions(-)
>>
> 
> I have applied patch 1 and 2.  Unless Alexandre wants to proceed differently,
> patches 3 and 4 should go through his tree.

I will merge DT patches in STM32 tree.

cheers
Alex

> 
> Thanks,
> Mathieu
> 
>> -- 
>> 2.25.1
>>